0

I've a personal documentation/git environment running on vmware.
I'm actually making manual backup on an offline media with Duplicati (that I love!)
I backup the entire virtual machine folder! And i feel like I could do better by simply backupping the volumes. I'm using a debian. This is my actual composer

version: "3"
services:
  db:
      image: postgres
      restart: always
      environment:
       - "POSTGRES_USER=User"
       - "POSTGRES_PASSWORD=Password"
       - "POSTGRES_DB=Database"
      volumes:
       - /home/user/Docker/Volumes/db_data:/var/lib/postgresql/data
       - /home/user/Docker/Documentazione/docker_postgres_init.sql:/docker-entrypoint-initdb.d/docker_postgres_init.sql
      networks:
       - docs

  git:
      image: gogs/gogs:latest
      restart: always
      ports:
       - "11022:22"
       - "11080:3000"
      links:
       - db
      environment:
       - "RUN_CROND=true"
      networks:
       - docs
      volumes:
       - /home/user/Docker/Volumes/gogs_data:/data
      depends_on:
       - db

  wiki:
      image: requarks/wiki:2
      depends_on:
       - db
      environment:
        DB_TYPE: postgres
        DB_HOST: db
        DB_PORT: 5432
        DB_USER: some_user
        DB_PASS: some_pass
        DB_NAME: the_db_name
      restart: always
      networks:
       - docs
      links:
       - db
      ports:
        - "11081:3000"
  kanban:
    image: ghcr.io/plankanban/planka:latest
    command: >
      bash -c
        "for i in `seq 1 30`; do
          ./start.sh &&
          s=$$? && break || s=$$?;
          echo \"Tried $$i times. Waiting 5 seconds...\";
          sleep 5;
        done; (exit $$s)"
    restart: always
    volumes:
      - /home/user/Docker/Volumes/user_avatars:/app/public/user-avatars
      - /home/user/Docker/Volumes/project_background_images:/app/public/project-background-images
      - /home/user/Docker/Volumes/attachments:/app/private/attachments
    ports:
      - 11082:1337
    networks:
       - docs
    links:
       - db
    environment:
      - BASE_URL=http://kanban.casa
      - TRUST_PROXY=0
      - DATABASE_URL=postgresql://a_strange_user:with_a_strange_password@db/planka
      - SECRET_KEY="SuperSecretKey"
    depends_on:
      - db

  proxy:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: always
    ports:
      - '80:80' # Public HTTP Port
      - '443:443' # Public HTTPS Port
      - '81:81' # Admin Web Port
    depends_on:
      - db
      - wiki
      - git
      - kanban
    networks:
      - docs
    links:
      - db
    volumes:
      - /home/user/Docker/Volumes/proxy_manager_data:/data
      - /home/user/Docker/Volumes/proxy_manager_letsencrypt:/etc/letsencrypt

networks:
    docs:
      driver: bridge 

I've spent almost a full week to have this working! Hence, I'm no expert at all.
I like the setup and I'm happy with the output, but I'm not totally satisfied with my backup system. First of all I think it is not reliable, in term of availability, I've this offline storage I write things in that could fails. And I'm not feeling certain of a backup restore from a virtual machine folder (I always stop the VM before starting the Duplicati backup).

Is there a better way to have the volumes elsewhere, like in a cloud? I could manage to spend few bucks for peace of mind, but as of my backups, I like security, everything on the remote should be encrypted, communication should be secure, etc. etc.

What is the best practice?

Thanks

Raikoug
  • 121
  • 1
  • 4
  • This is a very broad question. Running in cloud with some networked storage (such as AWS EBS) gives you reliable snapshotting. If you're OK with stopping your applications, you can choose any backup tool (I use duplicity and restic) to backup just the volumes. – Krab Sep 13 '22 at 14:26

0 Answers0