Current section
Files
Jump to
Current section
Files
vps_deploy
CHANGELOG.md
CHANGELOG.md
# Changelog
All notable changes to this project are grouped by day.
## 2026-08-23
### Added
- Changelog
- MIT `LICENSE.md` (e9li GmbH) and `CONTRIBUTING.md`
- ExDoc (`mix docs`) for Hex publication
- ExUnit coverage for config, remote script, sudoers rendering, and exclude merging
- Optional remote deploy lock (`flock` when installed on the server; no-op otherwise so existing hosts keep working)
- SSH `ConnectTimeout` / `ServerAliveInterval` on deploy and setup
- `.deploy.lock` rsync exclude
### Fixed
- Deploy reported success when the systemd service never became active (now waits up to ~60s, then fails)
- `mix deploy.init` printed “configuration written” even when it skipped an existing config block
- Sudo check grepped for the English word “password” (locale-fragile); now uses `sudo -n` exit codes
- `systemctl stop … || true` ignored real stop failures; inactive units are still skipped so first-start deploys work
- Remote script interpolated `app_name` / `service_name` / `deploy_dir` unquoted
- `mix deploy.setup` ran `scp`/`ssh` through a shell string and a predictable `/tmp/vps_deploy_setup.sh` path
- Sudo password was written to a temp file (now piped to `sudo -S bash -s`; echo hidden with `stty -echo`)
- Overridden `excludes` could omit `.env`, so `rsync --delete` could wipe the server env file
- Failed migrate after stop left the service down with no restart attempt
### Changed
- Version 0.1.7
- `.env` is sourced in a subshell around migrations only (same values, no leak into later commands)
## 2026-06-21
### Fixed
- Environment variables leaking between apps when several applications share the same server
## 2026-05-18
### Added
- `esbuild.install` during the remote build
### Changed
- Version bump
## 2026-03-17
### Changed
- Git dependency URL
## 2026-03-11
### Added
- `mix deploy.setup` and sudoers installation for passwordless `systemctl`
- Optional database / Ecto migrations (`use_database` yes/no)
### Fixed
- SSH errors during deploy
- Sudo prompting mid-deploy
- Password prompt echoing in the terminal
## 2026-03-10
### Changed
- Gitignore
- Remote build deletes `mix.lock` before `mix deps.get` (kept for compatibility with existing projects)
## 2026-02-11
### Added
- Initial `mix deploy` / `mix deploy.init` for Phoenix apps over rsync + SSH
### Fixed
- `:stdin` handling
- Dumping all environment variables during deploy