156 lines
6.1 KiB
Makefile
156 lines
6.1 KiB
Makefile
#!make
|
|
include main.conf
|
|
export $(shell sed 's/=.*//' main.conf)
|
|
|
|
VERSION := 0.0.1-rc0
|
|
export VERSION
|
|
|
|
BUILD_ROOT_PATH=$(shell pwd)
|
|
|
|
.PHONY: all
|
|
all: environment moodle nextcloud
|
|
cp .env docker/postgresql
|
|
cp .env docker/mariadb
|
|
cp .env docker/moodle
|
|
cp .env docker/nextcloud
|
|
cp .env docker/wordpress
|
|
cp .env docker/etherpad
|
|
docker-compose -f docker/moodle/moodle.yml \
|
|
-f docker/nextcloud/nextcloud.yml \
|
|
-f docker/wordpress/wordpress.yml \
|
|
-f docker/etherpad/etherpad.yml \
|
|
-f docker/onlyoffice/onlyoffice.yml \
|
|
-f docker/redis/redis.yml \
|
|
-f docker/postgresql/postgresql.yml \
|
|
-f docker/mariadb/mariadb.yml \
|
|
-f docker/network.yml \
|
|
config > docker-compose.yml
|
|
|
|
.PHONY: start
|
|
start: all
|
|
docker-compose up -d --no-deps
|
|
|
|
.PHONY: add-plugins
|
|
add-plugins:
|
|
docker exec -ti isard-apps-nextcloud-app /bin/sh -c "su - www-data -s /bin/sh -c 'PHP_MEMORY_LIMIT=512M php /var/www/html/occ app:install mail'"
|
|
docker exec -ti isard-apps-nextcloud-app /bin/sh -c "su - www-data -s /bin/sh -c 'PHP_MEMORY_LIMIT=512M php /var/www/html/occ app:enable mail'"
|
|
docker exec -ti isard-apps-nextcloud-app /bin/sh -c "su - www-data -s /bin/sh -c 'PHP_MEMORY_LIMIT=512M php /var/www/html/occ app:install user_saml'"
|
|
docker exec -ti isard-apps-nextcloud-app /bin/sh -c "su - www-data -s /bin/sh -c 'PHP_MEMORY_LIMIT=512M php /var/www/html/occ app:enable user_saml'"
|
|
docker exec -ti isard-apps-nextcloud-app /bin/sh -c "su - www-data -s /bin/sh -c 'PHP_MEMORY_LIMIT=512M php /var/www/html/occ app:install ownpad'"
|
|
docker exec isard-apps-nextcloud-app apk add jq
|
|
docker exec isard-apps-nextcloud-app sh -c 'jq ". + {\"pad\": [\"application/x-ownpad\"], \"calc\": [\"application/x-ownpad\"]}" /var/www/html/resources/config/mimetypemapping.dist.json > /var/www/html/config/mimetypemapping.json'
|
|
docker exec -u www-data isard-apps-nextcloud-app sh -c 'PHP_MEMORY_LIMIT=512M php /var/www/html/occ files:scan --all'
|
|
docker exec -ti isard-apps-nextcloud-app /bin/sh -c "su - www-data -s /bin/sh -c 'PHP_MEMORY_LIMIT=512M php /var/www/html/occ app:enable ownpad'"
|
|
|
|
|
|
docker exec -u www-data isard-apps-nextcloud-app php occ --no-warnings app:install onlyoffice
|
|
docker exec -u www-data isard-apps-nextcloud-app php occ --no-warnings config:app:set onlyoffice DocumentServerUrl --value="https://oof.$$DOMAIN"
|
|
docker exec -u www-data isard-apps-nextcloud-app php occ --no-warnings config:app:set onlyoffice jwt_secret --value="secret"
|
|
docker exec -u www-data isard-apps-nextcloud-app php occ --no-warnings config:app:set onlyoffice jwt_header --value="Authorization"
|
|
docker exec -u www-data isard-apps-nextcloud-app php occ --no-warnings config:system:set allow_local_remote_servers --value=true
|
|
|
|
.PHONY: cleanup
|
|
cleanup:
|
|
docker-compose down
|
|
rm -rf /opt/isard-apps
|
|
|
|
.PHONY: environment
|
|
environment:
|
|
cp main.conf .env
|
|
echo "BUILD_ROOT_PATH=$(BUILD_ROOT_PATH)" >> .env
|
|
|
|
.PHONY: moodle
|
|
moodle: environment
|
|
cp .env docker/moodle
|
|
docker-compose -f docker/moodle/moodle.yml \
|
|
-f docker/postgresql/postgresql.yml \
|
|
-f docker/network.yml \
|
|
config > docker-compose.moodle.yml
|
|
|
|
.PHONY: nextcloud
|
|
nextcloud: environment
|
|
cp .env docker/nextcloud
|
|
cp .env docker/redis
|
|
docker-compose -f docker/nextcloud/nextcloud.yml \
|
|
-f docker/postgresql/postgresql.yml \
|
|
-f docker/redis/redis.yml \
|
|
-f docker/network.yml \
|
|
config > docker-compose.nextcloud.yml
|
|
|
|
.PHONY: wordpress
|
|
wordpress: environment
|
|
cp .env docker/wordpress
|
|
docker-compose -f docker/wordpress/wordpress.yml \
|
|
-f docker/mariadb/mariadb.yml \
|
|
-f docker/network.yml \
|
|
config > docker-compose.wordpress.yml
|
|
|
|
.PHONY: init-dbs
|
|
init-dbs: environment
|
|
MOODLE="\set AUTOCOMMIT on\n; \
|
|
CREATE USER $(MOODLE_POSTGRES_USER) SUPERUSER PASSWORD '$(MOODLE_POSTGRES_PASSWORD)'; \
|
|
CREATE DATABASE moodle; \
|
|
GRANT ALL PRIVILEGES ON DATABASE moodle TO $(MOODLE_POSTGRES_USER);"
|
|
docker-compose exec isard-apps-postgresql psql -v ON_ERROR_STOP=1 \
|
|
--username $(POSTGRES_USER) <<-EOSQL $(MOODLE) EOSQL
|
|
|
|
.PHONY: remove-moodle-db
|
|
remove-moodle-db: environment
|
|
docker-compose exec isard-apps-postgresql psql -v ON_ERROR_STOP=1 \
|
|
--username $(POSTGRES_USER) -c "\set AUTOCOMMIT on\n; \
|
|
DROP DATABASE moodle;"
|
|
|
|
.PHONY: reset-nextcloud
|
|
reset-nextcloud: environment
|
|
docker-compose stop isard-apps-nextcloud-nginx isard-apps-nextcloud-app
|
|
rm -rf /opt/isard-office/nextcloud
|
|
docker-compose exec isard-apps-postgresql psql -v ON_ERROR_STOP=1 \
|
|
--username $(POSTGRES_USER) -c "\set AUTOCOMMIT on\n; \
|
|
DROP DATABASE nextcloud; \
|
|
CREATE USER $(NEXTCLOUD_POSTGRES_USER) SUPERUSER PASSWORD '$(NEXTCLOUD_POSTGRES_PASSWORD)'; \
|
|
CREATE DATABASE nextcloud; \
|
|
GRANT ALL PRIVILEGES ON DATABASE nextcloud TO $(NEXTCLOUD_POSTGRES_USER);"
|
|
docker-compose up -d isard-apps-nextcloud-nginx isard-apps-nextcloud-app
|
|
|
|
.PHONY: backup-databases
|
|
backup-databases:
|
|
echo "Todo"
|
|
|
|
.PHONY: restore-database
|
|
restore-databases:
|
|
echo "Todo"
|
|
|
|
.PHONY: db-snapshot-create
|
|
db-snapshot-create: environment
|
|
docker exec -t isard-apps-postgresql pg_dumpall -c -U admin > backups/db-snapshot.sql
|
|
#docker exec -t isard-apps-postgresql pg_dumpall -c -U admin | gzip > backups/db-snapshot.sql.gz
|
|
echo $$DOMAIN
|
|
sed -i 's/$(DOMAIN)/DDOOMMAAIINN/g' backups/db-snapshot.sql
|
|
|
|
.PHONY: db-snapshot-restore
|
|
db-snapshot-restore: environment
|
|
echo "Old domain"
|
|
cp .env docker/postgresql
|
|
cp .env docker/mariadb
|
|
docker-compose -f docker/postgresql/postgresql.yml \
|
|
-f docker/mariadb/mariadb.yml \
|
|
-f docker/network.yml \
|
|
config > databases.yml
|
|
echo "Starting system databases..."
|
|
docker-compose -f databases.yml up -d --no-deps
|
|
|
|
echo "Substitute DOMAIN with: $$DOMAIN"
|
|
cp backups/db-snapshot.sql backups/db-snapshot_$$DOMAIN.sql
|
|
sed -i 's/DDOOMMAAIINN/$(DOMAIN)/g' backups/db-snapshot_$$DOMAIN.sql
|
|
|
|
echo "Generating new private/public certificates for SAML..."
|
|
openssl req -nodes -new -x509 -keyout backups/certs/private.key -out backups/certs/public.cert
|
|
|
|
echo "Substitute CERTIFICATES with new ones'
|
|
grep -rl oldtext . | xargs sed -i 's/oldtext/newtext/g'
|
|
|
|
echo "Restoring new SQL info in databases..."
|
|
docker exec -i isard-apps-postgresql psql -U admin --set ON_ERROR_STOP=on -f backups/sample.sql
|
|
|
|
echo "Cleaning up"
|
|
rm databases.yml
|