diff --git a/.gitignore b/.gitignore index 7538a1e..4a64789 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -.env +.env localSettings/* \ No newline at end of file diff --git a/README.md b/README.md index 7a72fd7..e6c603c 100644 --- a/README.md +++ b/README.md @@ -1,61 +1,48 @@ - - -# wiki.limbosolutions.com - -Welcome to public repository of my [wiki](https://wiki.limbosolutions.com) - -Using [media wiki](https://www.mediawiki.org/wiki/MediaWiki)) - -[Check](doc/administration/README.md) for more information about admistration. - -## Requirements - -- Docker -_Currently hosted on an ubuntu lxc container with docker and portainer [+ information](https://git.limbosolutions.com/kb/lxc)._ - -- [Duplicati Image with mySql client](https://git.limbosolutions.com/kb/duplicati/src/branch/main/docker/mysqlclient/README.md) - -## Setup - -[Docker Compose File](docker-compose.yaml) - -## Backup & Restore - -Using [duplicati](https://git.limbosolutions.com/kb/duplicati) to daily backups of files and databases. - -- Backup Name: wiki -- Destination Server: backupsrv01.dev.lan -- Destination Path: /wiki.limbosolutions.com/duplicati/wiki -- Source Data : /wiki (check [Docker Compose File](docker-compose.yaml) for folder structure on /wiki) -- Schedule: every day at 1:15 am -- run-script-before-required:/duplicati-mysqlclient/scripts/backupdb.sh - -### Settings - -#### Default Options - -```bash - ---send-mail-any-operation=true ---send-mail-body=%RESULT% ---send-mail-level=all ---send-mail-subject=Duplicati %OPERATIONNAME% report for wiki.limbosolutions.com -> %backup-name% ---send-mail-to=to@email ---send-http-result-output-format=Duplicati ---send-mail-url= smtp://serveraddress:25 ---send-mail-password=username ---send-mail-username=pass - -``` - - -### Restore Database - -```bash -#select a file to import -ls /db-dumps -#select a file to import -DB_FILE= "file name to import" -mysql --host db -uroot -p ${MYSQL_DATABASE} < /db-dumps/$DB_FILE -#root password (root password is the enviromnent variable ${MYSQL_ROOT_PASSWORD}) -``` + + +# wiki.limbosolutions.com + +Welcome to public repository of my [wiki](https://wiki.limbosolutions.com). +Using [media wiki](https://www.mediawiki.org/wiki/MediaWiki). + + +## Requirements + +- Docker +- Docker Compose +- Portainer (optional) +- [Duplicati Image with mySql client](https://git.limbosolutions.com/kb/duplicati/src/branch/main/docker/mysqlclient/README.md) + + +## Setup + +[Docker Compose File](docker-compose.yaml) + +## Backup and Restore + +Using [custom duplicati image](https://git.limbosolutions.com/kb/duplicati) to daily backups files and databases. Every action (backup/restore) creates an measurement in influxdb for reporting and alerts. + + +### Duplicati - Default Options + +Notify Influxdb. + +--run-script-after=duplicati-influxdb-notify + +### Duplicati - wiki job Options + +Create db dump. + +run-script-before-required:duplicati-mysql-backup + +### Restore Database + +```bash +#select a file to import +ls /db-dumps +#select a file to import +DB_FILE= "file name to import" +mysql --host db -uroot -p ${MYSQL_DATABASE} < /db-dumps/$DB_FILE +#root password (root password is the enviromnent variable ${MYSQL_ROOT_PASSWORD}) +``` + diff --git a/doc/administration/README.md b/doc/administration/README.md deleted file mode 100644 index 2844daf..0000000 --- a/doc/administration/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# Administration - -## HomeAssistant DashBoard - -![Home Assistant Dashboard](images/git-homessistant-dashboard.png "Home Assistant Dashboard") - -```yaml -type: vertical-stack -cards: - - type: entities - entities: - - entity: sensor.limbowiki_info_status - name: Status - secondary_info: last-changed - - entity: sensor.limbowiki_info_version - name: Version - - type: weblink - name: Homepage - url: http://wiki.limbosolutions.com - - type: weblink - name: Duplicati - url: http://wansrv01.dev.lan:8202 - - type: weblink - name: Hosting - url: https://wansrv01.dev.lan:9443 - - type: weblink - name: Git - url: https://git.limbosolutions.com/limbosolutions.com/wiki.limbosolutions.com -title: wiki.limbosolutions.com -``` diff --git a/doc/administration/images/git-homessistant-dashboard.png b/doc/administration/images/git-homessistant-dashboard.png deleted file mode 100644 index 8052a45..0000000 Binary files a/doc/administration/images/git-homessistant-dashboard.png and /dev/null differ diff --git a/docker-compose.yaml b/docker-compose.yaml index b5a1f5e..f30723a 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,52 +1,56 @@ -version: '3.0' -services: - app: - image: mediawiki:1.39 - container_name: limbowiki_app - links: - - db - ports: - - ${APP_PORT}:80 - volumes: - - app_data:/mediawiki_data - command: > - sh -c " - chown -R www-data:www-data /mediawiki_data; - rm /var/www/html/LocalSettings.php; - rm /var/www/html/includes/PlatformSettings.php; - rm -r /var/www/html/images; - ln -s /mediawiki_data/config/LocalSettings.php /var/www/html/LocalSettings.php; - ln -s /mediawiki_data/config/PlatformSettings.php /var/www/html/includes/PlatformSettings.php; - ln -s /mediawiki_data/images /var/www/html/images; - apache2-foreground;" - restart: unless-stopped - db: - image: mariadb:10.6.2 - container_name: limbowiki_db - restart: unless-stopped - environment: - MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} - volumes: - - db_data:/var/lib/mysql - duplicati: - image: duplicati-mysqlclient:latest - container_name: limbowiki_duplicati - environment: - - MYSQL_HOST=db - - MYSQL_DATABASE=${MYSQL_DATABASE} - - MYSQL_USER=${MYSQL_USER} - - MYSQL_PASSWORD=${MYSQL_PASSWORD} - - DESTINATION=/wiki/db_dumps - volumes: - - duplicati_data:/data - - db_data:/wiki/db_data:ro - - app_data:/wiki/app_data:ro - - db-dumps:/wiki/db_dumps - ports: - - 8202:8200 - restart: unless-stopped -volumes: - db_data: - app_data: - duplicati_data: +version: '3.0' +services: + app: + image: mediawiki:1.39 + links: + - db + ports: + - ${APP_PORT}:80 + volumes: + - app_data:/mediawiki_data + command: > + sh -c " + rm /var/www/html/LocalSettings.php; + rm /var/www/html/includes/PlatformSettings.php; + rm -r /var/www/html/images; + ln -s /mediawiki_data/config/LocalSettings.php /var/www/html/LocalSettings.php; + ln -s /mediawiki_data/config/PlatformSettings.php /var/www/html/includes/PlatformSettings.php; + ln -s /mediawiki_data/images /var/www/html/images; + chown -R www-data:www-data /mediawiki_data; + chown -R www-data:www-data /var/www/html; + apache2-foreground;" + restart: unless-stopped + db: + image: mariadb:10.6.2 + restart: unless-stopped + environment: + MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} + volumes: + - db_data:/var/lib/mysql + duplicati: + image: duplicati-mysqlclient:latest + environment: + - MYSQL_HOST=db + - MYSQL_DATABASE=${MYSQL_DATABASE} + - MYSQL_USER=${MYSQL_USER} + - MYSQL_PASSWORD=${MYSQL_PASSWORD} + - MYSQL_BACKUP_FOLDER=/bck/db_dumps + - INFLUXDB_SERVER=${INFLUXDB_SERVER} + - INFLUXDB_BUCKET=${INFLUXDB_BUCKET} + - INFLUXDB_ORG=${INFLUXDB_ORG} + - INFLUXDB_TOKEN=${INFLUXDB_TOKEN} + - INFLUXDB_CLIENT_HOSTNAME=${INFLUXDB_CLIENT_HOSTNAME} + volumes: + - duplicati_data:/data + - db_data:/bck/db_data:ro + - app_data:/bck/app_data:ro + - db-dumps:/bck/db_dumps + - duplicati_data:/bck/duplicati_data:ro + ports: + - 8202:8200 + restart: unless-stopped +volumes: + db_data: + app_data: + duplicati_data: db-dumps: \ No newline at end of file