amnezia-client icon indicating copy to clipboard operation
amnezia-client copied to clipboard

Enhance Amnezia server setup: Docker Compose for better devops support

Open stone-w4tch3r opened this issue 6 months ago • 10 comments

Describe the bug Hey there! So, the current Amnezia server setup is great for newbies, but it's a real headache for power users and DevOps folks. It's a pain to backup, move to another VPS, or set up manually. This makes it tough to use cool stuff like Infrastructure as Code (IaC) and other DevOps tricks.

Current Behavior

  1. Service container's are configured via runtime Docker exec commands (configure_container.sh)
  2. The container doesn't save its state in the image or volumes
  3. Backing up and porting is messy and complex
  4. Manual setup almost impossible

Expected behavior Docker Compose architecture that:

  1. Allows easy backup and restoration of the entire VPN setup
  2. Lets you easily move between different VPS providers
  3. Enables manual setup and customization for advanced users

Proposed Solution Transition to a Docker Compose based architecture:

  1. Define services, networks, and volumes in a docker compose
  2. Store configuration (state) in volumes
  3. Use environment variables for settings

Benefits

  1. Backing up and restoring becomes way easier
  2. Simplification of current setup scripts
  3. Replaces current iptables approach to more simple docker compose networking
  4. Better support for DevOps/IaC approach
  5. Power users got more flexibility (e.g. custom domains)

Additional context I'd be glad to help out with this if you want! 😎

Server (please complete the following information):

  • OS: Various (e.g., Ubuntu 22.04, Debian 11, etc.)

Desktop (please complete the following information):

  • OS: Not applicable (server-side issue)
  • Version: Current Amnezia server version

Smartphone (please complete the following information):

  • Not applicable

stone-w4tch3r avatar Aug 06 '24 00:08 stone-w4tch3r