[GH-ISSUE #1577] What is the docker image update procedure for a managed server? #659

Open
opened 2026-10-13 20:26:00 +00:00 by bsakaguchi · 8 comments
Owner

Originally created by @SergeyFilippov on GitHub (May 10, 2025).
Original GitHub issue: https://github.com/amnezia-vpn/amnezia-client/issues/1577

I am looking for a way to update my amnezia docker images on a VPS, that is managed by amnezia client.

For example, amnezia-awg is as old as a moment I have first initialized the server, and i see that there were a plenty of change in wg related git repo.

I was not able to find in docs or in the app functionality to update installed containers.
Is this by design?

P.S. There is /opt/amnezia/awg dir inside of a amnezia-awg container, that I can backup, delete the service from a server, recreate the service and try restoring config files from the backup...
But it feels to much hacky.

Originally created by @SergeyFilippov on GitHub (May 10, 2025). Original GitHub issue: https://github.com/amnezia-vpn/amnezia-client/issues/1577 I am looking for a way to update my amnezia docker images on a VPS, that is managed by amnezia client. For example, amnezia-awg is as old as a moment I have first initialized the server, and i see that there were a plenty of change in wg related git repo. I was not able to find in docs or in the app functionality to update installed containers. Is this by design? P.S. There is `/opt/amnezia/awg` dir inside of a `amnezia-awg` container, that I can backup, delete the service from a server, recreate the service and try restoring config files from the backup... But it feels to much hacky.
Author
Owner

@jokaorgua commented on GitHub (Jun 27, 2025):

same here. help on how to update docker containers is appreciated

<!-- gh-comment-id:3011797456 --> @jokaorgua commented on GitHub (Jun 27, 2025): same here. help on how to update docker containers is appreciated
Author
Owner

@SUM-Soft commented on GitHub (Sep 21, 2025):

I would really appreciate integration with something like Watchtower. ❤️

<!-- gh-comment-id:3315888837 --> @SUM-Soft commented on GitHub (Sep 21, 2025): I would really appreciate integration with something like [Watchtower](https://github.com/containrrr/watchtower). ❤️
Author
Owner

@xob0t commented on GitHub (Oct 3, 2025):

You can find out about server side updates (when you need them) in TG chat or in our release news.
The update itself is done in the following way - you remove all Amnezia protocols from the server using a special mechanism in the application and install them again from the new version of the application.

https://old.reddit.com/r/AmneziaVPN/comments/1f5478e/amnezia_server_update/

<!-- gh-comment-id:3365589036 --> @xob0t commented on GitHub (Oct 3, 2025): > You can find out about server side updates (when you need them) in TG chat or in our release news. The update itself is done in the following way - you remove all Amnezia protocols from the server using a special mechanism in the application and install them again from the new version of the application. https://old.reddit.com/r/AmneziaVPN/comments/1f5478e/amnezia_server_update/
Author
Owner

@jokaorgua commented on GitHub (Oct 3, 2025):

@xob0t how to save all configs during update? Is there any kind of a manual? TIA

<!-- gh-comment-id:3365596326 --> @jokaorgua commented on GitHub (Oct 3, 2025): @xob0t how to save all configs during update? Is there any kind of a manual? TIA
Author
Owner

@vogdb commented on GitHub (Oct 12, 2025):

You can find out about server side updates (when you need them) in TG chat or in our release news.
The update itself is done in the following way - you remove all Amnezia protocols from the server using a special mechanism in the application and install them again from the new version of the application.

https://old.reddit.com/r/AmneziaVPN/comments/1f5478e/amnezia_server_update/

I just tried it and it erased all user configs from the previous installation. Is there a way to preserve the existing configs?

<!-- gh-comment-id:3394083704 --> @vogdb commented on GitHub (Oct 12, 2025): > > You can find out about server side updates (when you need them) in TG chat or in our release news. > > The update itself is done in the following way - you remove all Amnezia protocols from the server using a special mechanism in the application and install them again from the new version of the application. > > https://old.reddit.com/r/AmneziaVPN/comments/1f5478e/amnezia_server_update/ I just tried it and it erased all user configs from the previous installation. Is there a way to preserve the existing configs?
Author
Owner

@vogdb commented on GitHub (Oct 12, 2025):

Upd. There is Backup button in Settings to save user configs. I guess this the way. Save a backup, delete, install new, restore from backup.

That's interesting. Looks like docker containers don't need the update. They have only one release like amnezia-wg for example https://hub.docker.com/r/amneziavpn/amnezia-wg/tags. However I checked the recent installation of Amnezia self-hosted and it uses 3 docker images amnezia-ipsec, amnezia-xray, amnezia-wg while the old installations have only one image of amnezia-wg. How can one upgrade a self-hosted to the recent installation with 3 images amnezia-ipsec, amnezia-xray, amnezia-wg while preserving the configs of existing users. If it's impossible then it's fine, I will generate new configs but it would be great to preserve as some users (elderly people) require help with installing configs.

<!-- gh-comment-id:3394095146 --> @vogdb commented on GitHub (Oct 12, 2025): Upd. There is `Backup` button in `Settings` to save user configs. I guess this the way. Save a backup, delete, install new, restore from backup. That's interesting. Looks like docker containers don't need the update. They have only one release like `amnezia-wg` for example https://hub.docker.com/r/amneziavpn/amnezia-wg/tags. However I checked the recent installation of Amnezia self-hosted and it uses 3 docker images `amnezia-ipsec`, `amnezia-xray`, `amnezia-wg` while the old installations have only one image of `amnezia-wg`. How can one upgrade a self-hosted to the recent installation with 3 images `amnezia-ipsec`, `amnezia-xray`, `amnezia-wg` while preserving the configs of existing users. If it's impossible then it's fine, I will generate new configs but it would be great to preserve as some users (elderly people) require help with installing configs.
Author
Owner

@ref commented on GitHub (Jul 1, 2026):

Hey, I ran into the same problem, so I wrote a small updater.

It updates the amneziawg-go binary in-place while keeping the server key and all peers — no configs get regenerated. Backs up first, and auto-rolls-back if something fails.

Use at your own risk, run --dry-run first: https://github.com/anik1ng/amnezia-updater

<!-- gh-comment-id:4858356898 --> @ref commented on GitHub (Jul 1, 2026): Hey, I ran into the same problem, so I wrote a small updater. It updates the amneziawg-go binary in-place while keeping the server key and all peers — no configs get regenerated. Backs up first, and auto-rolls-back if something fails. Use at your own risk, run --dry-run first: https://github.com/anik1ng/amnezia-updater
Author
Owner

@andreykolodhub commented on GitHub (Sep 26, 2026):

I think self-hosted server maintenance deserves a first-class UI in Amnezia.
Today the initial setup is excellent: a user enters SSH credentials, Amnezia deploys AWG/XRay automatically, and everything works. But after that, it is not obvious whether the server-side components are current or how they should be safely updated.
It would be great to have a Server Updates section showing the installed and available versions, for example:

  • AmneziaWG: installed 3.1.x → latest 3.1.x
  • Xray-core: installed 26.x → latest 26.x
    With actions such as:
    Check for updates
    Update protocols
    and optionally:
    Automatic updates
  • Off
  • Stable/security updates
  • All stable updates
    An update should ideally perform a configuration backup, check required kernel/DKMS dependencies and firewall rules, update/recreate the container, run a health check, and automatically roll back if the new container fails.
    Notifications such as “A newer AWG/Xray version is available for your self-hosted server” would also be very useful.
    The self-hosted installation experience is already very user-friendly. Adding lifecycle/update management would make it possible to maintain a server long-term without requiring users to manually manage Docker images or reinstall protocols.
<!-- gh-comment-id:5843737895 --> @andreykolodhub commented on GitHub (Sep 26, 2026): I think self-hosted server maintenance deserves a first-class UI in Amnezia. Today the initial setup is excellent: a user enters SSH credentials, Amnezia deploys AWG/XRay automatically, and everything works. But after that, it is not obvious whether the server-side components are current or how they should be safely updated. It would be great to have a Server Updates section showing the installed and available versions, for example: - AmneziaWG: installed 3.1.x → latest 3.1.x - Xray-core: installed 26.x → latest 26.x With actions such as: Check for updates Update protocols and optionally: Automatic updates - Off - Stable/security updates - All stable updates An update should ideally perform a configuration backup, check required kernel/DKMS dependencies and firewall rules, update/recreate the container, run a health check, and automatically roll back if the new container fails. Notifications such as “A newer AWG/Xray version is available for your self-hosted server” would also be very useful. The self-hosted installation experience is already very user-friendly. Adding lifecycle/update management would make it possible to maintain a server long-term without requiring users to manually manage Docker images or reinstall protocols.
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
amnezia-vpn/amnezia-client#659
No description provided.