TGViewer
DevOps Ready | IT DevOps Ready | IT @devops_ready · 7.6K subscribers
Post #1283 1.44K
Делаем простой release через symlink!

Иногда приложение нужно выкладывать так, чтобы новая версия появлялась почти мгновенно, а откат занимал одну команду. Для этого часто используют директории releases и ссылку current.

Структура может быть такой:
/opt/app/releases/2026-08-29_1200
/opt/app/current -> /opt/app/releases/2026-08-28_1800


Сначала создаём новую папку релиза:
release="/opt/app/releases/$(date +%Y%m%d_%H%M%S)"
mkdir -p "$release"


Потом копируем туда собранные файлы:
rsync -a ./dist/ "$release/"


До переключения current пользователи всё ещё смотрят на старую версию. Это удобно, потому что подготовка релиза не ломает рабочее приложение.

Переключение делается через ln -sfn:
ln -sfn "$release" /opt/app/current


Теперь current указывает на новую директорию. Само переключение происходит быстро, потому что меняется ссылка, а не копируются файлы поверх боевой папки.

Если нужен откат, можно вернуть ссылку на прошлый релиз:
ln -sfn /opt/app/releases/2026-08-28_1800 /opt/app/current


После переключения обычно перезапускают сервис или отправляют reload, если приложение умеет подхватывать файлы без полного рестарта.

Такой подход полезен для простых серверов, статических сайтов, внутренних тулов и приложений без сложной deploy-платформы.

➡️ DevOps Ready | #практика
  • 👍 8
  • ❤ 7
  • 🔥 3
More from @devops_ready
  1. Oct 1, 2026🔄 Безопасный арсенал практических инструкций, курсов и инструментов 👩‍💻 Linux & Bash 🤔…
  2. Oct 1, 2026Шпаргалка по жизненному циклу Pod в Kubernetes! На картинке показано, как запрос проходит…
  3. Sep 30, 2026DevOps Daily собирает материалы по инфраструктуре! На сайте есть разборы Docker, Kubernete…
  4. Sep 29, 2026Разбираем SSH 7 флагов для подключения и туннелей! SSH нужен не только для входа на сервер…
  5. Sep 28, 2026📂 Напоминалка по построению observability-матрицы для проекта! Наблюдаемость помогает пон…
  6. Sep 25, 2026Знали, почему grep может завершить shell-скрипт без ошибки в самой команде? grep возвращае…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →