# Setup ## Install ### Requirements - Docker _Currently hosted on an ubuntu lxc container with docker and portainer [+ information](setup-lxc.md)._ - On instructions replace githost with host ip or address ### Services (Stacks) If portainer installed use portainer (http://githost:9000) to setup/manage services Stacks: - Stack Name: gitea _[Docker Compose](../docker/docker-compose.yaml)_ Access duplicati (http://ipaddress:8200) and set a password ## Restore ### Requirements - Host setup with docker and portainer [+ information](setup.md) ### Process 1) Recreate stack gitea _[Docker Compose](../docker/docker-compose.yaml)_ removing read only restrictions on duplicati volumes 1) Check Every Container is ok and running 1) Stop Every Container except duplicati (including portainer, if restoring portainer is a requirement) _note: restore portainer not tested_ 1) Enter Duplicati (http://githost:8200) 1) Import Backup job (if not possible next steps must be adapted) - All Imported jobs schedules must be disabled (or disable write permissions on backup host) - Remove references to scripts (example:run-script-before-required) - Recreate duplicati local database (home-> backup-> advanced-> database-> Recreate (delete and repair)) 1) Restore all files to original location - If database engine is diferent do not restore db_data and check restore database **before next steps** - Restore to duplicati only custom scripts (duplicati-data/myScripts), dot not restore full duplicati with this processs because duplicati is running! 1) Recreate stack gitea _[Docker Compose](../docker/docker-compose.yaml)_ with original read only restrictions on duplicati volumes ### Database Only required of database data files not recovarable (example: diferent database engine from backup) 1) Start Portainer container (if stopped in restore process) 2) Start Database container (if stopped in restore process) 3) Enter dabase container bash (by using portainer) 4) Execute Command ````bash ```bash #check last files db-dumps ls /git/db-dumps #pick file to import (maybe the last one :)) ``` import file ```bash ls /db-dumps #select a file to import DB_FILE=filenametoimport # by default duplicati container dont have de enviroment varible ${DB_ROOT_PASSWORD} mysql -uroot -p'${MYSQL_ROOT_PASSWORD}' $MYSQL_DATABASE < /db-dumps/$DB_FILE mysql -uroot -p $MYSQL_DATABASE < /db-dumps/$DB_FILE and enter rootpassword mysql --host db -uroot -p'${MYSQL_ROOT_PASSWORD}' < /git/db-dumps/$DB_FILE ``` ```` 3) start all stop containers and check everyting is ok 4) Execute backup on duplicati 5) Check backup is restorable 6) Re Enable schedule backups on duplication