diff --git a/stacks/forgejo/docker-compose.yml b/stacks/forgejo/docker-compose.yml new file mode 100644 index 0000000..0e0d318 --- /dev/null +++ b/stacks/forgejo/docker-compose.yml @@ -0,0 +1,99 @@ +version: '3.8' + +services: + server: + image: codeberg.org/forgejo/forgejo:1.21-rootless + restart: always + user: '1597002120' #forgejo + networks: + - forgejo + ports: + - "8782:3000" #http + - "2222:2222" #ssh + volumes: + - forgejo_data:/var/lib/gitea + - forgejo_config:/etc/gitea + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + environment: + - USER=forgejo + - forgejo__database__DB_TYPE=postgres + - forgejo__database__HOST=db:5432 + - forgejo__database__NAME=forgejo + - forgejo__database__USER=forgejo + - forgejo__database__PASSWD=forgejo + + db: + image: postgres:14 + restart: always + networks: + - forgejo + volumes: + - forgejo_db:/pgdata + environment: + - POSTGRES_USER=forgejo + - POSTGRES_PASSWORD=forgejo + - POSTGRES_DB=forgejo + - PGDATA=/pgdata + + db-backup: + image: tiredofit/db-backup + restart: always + networks: + - forgejo + volumes: + - forgejo_dbbackup_backups:/backup + - forgejo_dbbackup_logs:/logs + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + environment: + - BACKUP_JOB_CONCURRENCY=1 + - DEFAULT_CHECKSUM=NONE + - DEFAULT_COMPRESSION=NONE + - DEFAULT_BACKUP_INTERVAL=1440 # Backup every 1440 minutes + - DEFAULT_BACKUP_BEGIN=0000 # Start backing up at midnight + - DEFAULT_CLEANUP_TIME=8640 # Cleanup backups after a week + + - DB01_TYPE=postgres + - DB01_HOST=db + - DB01_NAME=forgejo + - DB01_USER=forgejo + - DB01_PASS=forgejo + +volumes: + forgejo_db: + + forgejo_dbbackup_backups: + name: forgejo_dbbackup_backups + driver: local + driver_opts: + type: cifs + device: //ws22-fs.taudris.com/Resilient/Services/forgejo/db-backup/backups + o: addr=ws22-fs.taudris.com,username=forgejo,password=HBdxvNyKy8ITIk37xSgv1N7PCWHl9Xkvlc1u4f31MH6MmSkWC4aMSo8rKtjFXGuJ,rw,_netdev,vers=3.1.1,noserverino,mfsymlinks,seal,uid=1597002120,gid=1597000514,file_mode=0700,dir_mode=0700,echo_interval=2,handletimeout=4000 + + forgejo_dbbackup_logs: + name: forgejo_dbbackup_logs + driver: local + driver_opts: + type: cifs + device: //ws22-fs.taudris.com/Resilient/Services/forgejo/db-backup/logs + o: addr=ws22-fs.taudris.com,username=forgejo,password=HBdxvNyKy8ITIk37xSgv1N7PCWHl9Xkvlc1u4f31MH6MmSkWC4aMSo8rKtjFXGuJ,rw,_netdev,vers=3.1.1,noserverino,mfsymlinks,seal,uid=1597002120,gid=1597000514,file_mode=0700,dir_mode=0700,echo_interval=2,handletimeout=4000 + + forgejo_data: + name: forgejo_data + driver: local + driver_opts: + type: cifs + device: //ws22-fs.taudris.com/Resilient/Services/forgejo/data + o: addr=ws22-fs.taudris.com,username=forgejo,password=HBdxvNyKy8ITIk37xSgv1N7PCWHl9Xkvlc1u4f31MH6MmSkWC4aMSo8rKtjFXGuJ,rw,_netdev,vers=3.1.1,noserverino,mfsymlinks,seal,uid=1597002120,gid=1597000514,file_mode=0770,dir_mode=0770,echo_interval=2,handletimeout=4000 + + forgejo_config: + name: forgejo_config + driver: local + driver_opts: + type: cifs + device: //ws22-fs.taudris.com/Resilient/Services/forgejo/config + o: addr=ws22-fs.taudris.com,username=forgejo,password=HBdxvNyKy8ITIk37xSgv1N7PCWHl9Xkvlc1u4f31MH6MmSkWC4aMSo8rKtjFXGuJ,rw,_netdev,vers=3.1.1,noserverino,mfsymlinks,seal,uid=1597002120,gid=1597000514,file_mode=0770,dir_mode=0770,echo_interval=2,handletimeout=4000 + +networks: + forgejo: