Ты собрал первое приложение и хочешь, чтобы оно открывалось по ссылке из любого браузера. Зарубежные хостинги требуют иностранную карту, VPN и терпения к англоязычным интерфейсам. Amvera решает эту задачу: российский облачный хостинг, оплата рублями, деплой одной командой git push. Ниже разберём, как задеплоить сайт на Amvera с нуля, настроить домен, переменные окружения и не словить типичные ошибки новичков.
Содержание
Что такое Amvera и почему она подходит новичку из РФ
Amvera — это российская облачная платформа (PaaS), которая позволяет размещать веб-приложения, бэкенды, ботов и статические сайты. Amvera cloud даёт серверное пространство, куда можно отправить код, и платформа сама соберёт, запустит и поддержит его. Тебе не нужно арендовать виртуальный сервер, настраивать Linux и устанавливать nginx — Amvera hosting берёт инфраструктуру на себя.
Для новичка из России у Amvera несколько важных преимуществ.
Оплата рублями. Не нужна зарубежная карта, PayPal или Stripe. Это снимает сразу несколько барьеров, с которыми сталкиваются начинающие разработчики.
Русскоязычный интерфейс и поддержка. Документация, панель управления и поддержка ведутся на русском. Это экономит часы на переводе ошибок.
Деплой через git push. Вместо ручной заливки файлов через FTP или сложных CI/CD-конвейеров ты просто отправляешь код в репозиторий. Amvera автоматически подхватывает изменения, собирает проект и обновляет сайт. Это называется git-push deploy — один из самых простых способов вывести приложение в продакшен.
Широкая поддержка технологий. На Amvera можно развернуть приложения на Node.js, Python, Go, Java, PHP, Ruby, а также использовать Docker. Навыки из курса подойдут и для реальных проектов.
Дешёвый старт. Бесплатного тарифа у Amvera нет, но тарификация поминутная, а самый младший тариф «Пробный» стоит 0,24 ₽ в час — примерно 170 ₽ за 30 дней непрерывной работы. Для учебного приложения этого хватает, а выключенный проект денег не тратит.
Главная мысль: Amvera — это российский облачный хостинг, который делает деплой доступным новичку. Оплата рублями, русский интерфейс и git-push deploy снимают основные барьеры.
Регистрация и первый проект пошагово
Шаг 1. Регистрация аккаунта
Зайди на официальный сайт Amvera — amvera.ru — и зарегистрируйся. Обычно потребуется email, пароль и подтверждение почты. Используй надёжный пароль и включи двухфакторную аутентификацию, если она доступна.
Шаг 2. Создание первого приложения
После входа в панель управления создай новое приложение. Имя проекта лучше делать латиницей и понятным, например snake-game. Из него собирается бесплатный домен вида https://snake-game.username.amvera.io, где username — твой логин в Amvera. Домен нужно включить самому: раздел «Настройки» приложения, пункт «Бесплатный домен Амвера».
Шаг 3. Выбор технологии
Amvera предложит выбрать язык или шаблон. Для фронтенда на HTML/CSS/JS подойдёт статический сайт или Node.js. Для бэкенда — Python или Node.js. Если сомневаешься, ориентируйся на package.json для Node.js или requirements.txt для Python.
Шаг 4. Подключение репозитория
Основной путь на Amvera — её собственный git-репозиторий вида https://git.amvera.ru/<твой-ник>/<имя-проекта>: код ты пушишь прямо туда, логин и пароль — от аккаунта Amvera. Если код уже живёт на GitHub, репозиторий Amvera добавляется вторым remote, а автоматическую синхронизацию с GitHub, GitLab или Bitbucket настраивают отдельно через вебхуки. Если раньше не работал с GitHub, сначала прочитай статью про GitHub и токены.
После подключения панель покажет адрес приложения на техническом домене. Сохрани эту ссылку для проверки деплоя.
Шаг 5. Базовые настройки перед запуском
Перед отправкой кода проверь:
- в корне проекта есть стартовый файл или команда
startвpackage.json; - в корне лежит
amvera.yml(можноamvera.yaml) — файл, где описаны сборка и запуск: для Node.js это обязательныйscriptNameи, если нужно,containerPort. Без конфига Amvera будет искатьDockerfile; - приложение слушает порт из переменной окружения
PORT, а не жёстко3000; - для статического сайта в корне есть
index.html; - пароли и токены не хранятся в коде — их добавим позже через переменные окружения.
Важно: не храни секреты в коде. Они попадут в Git-историю и станут видны всем, у кого есть доступ к репозиторию.
Деплой через git push: пошаговый пример
Весь процесс деплоя сводится к отправке кода в Git-репозиторий Amvera. После каждого git push платформа автоматически собирает новую версию и заменяет старую.
Подготовка проекта
Представим, что у тебя простой проект на Node.js — та же «Змейка» с сервером, отдающим статические файлы:
my-snake-game/
├── package.json
├── server.js
├── index.html
├── style.css
└── game.js
package.json:
{
"name": "my-snake-game",
"version": "1.0.0",
"main": "server.js",
"scripts": {
"start": "node server.js"
},
"dependencies": {
"express": "^4.18.0"
}
}
server.js:
const express = require('express');
const path = require('path');
const app = express();
const PORT = process.env.PORT || 3000;
app.use(express.static(path.join(__dirname)));
app.listen(PORT, () => {
console.log(`Сервер запущен на порту ${PORT}`);
});
Строка const PORT = process.env.PORT || 3000; критически важна. В контейнере Amvera переменная PORT по умолчанию равна 80 — приложение поднимется на нём и будет доступно снаружи. Если ты хочешь оставить свой порт (скажем, 3000), объяви его в amvera.yml параметром containerPort в секции run, иначе в браузере получишь «Service Unavailable 503».
Инициализация Git и первый коммит
Если в проекте ещё нет Git:
git init
git add .
git commit -m "Первый коммит для деплоя на Amvera"
Если проект уже на GitHub, этот шаг пропускаем.
Добавление remote Amvera
В панели Amvera для приложения указан адрес репозитория, например:
https://git.amvera.ru/username/my-snake-game
Добавь его как remote:
git remote add amvera https://git.amvera.ru/username/my-snake-game
Теперь origin — это GitHub, amvera — облачный хостинг.
Отправка кода
Amvera собирает только ветку master. Если локальная ветка тоже master:
git push amvera master
Если локальная ветка называется main, пушить надо с переименованием на лету, иначе сборка просто не запустится:
git push amvera main:master
После push в терминале появятся логи сборки: установка зависимостей, запуск скриптов, старт приложения. Когда процесс завершится, открой ссылку в браузере.
Примерный вывод:
remote: -----> Building on the ref master
remote: -----> Installing dependencies
remote: npm install
remote: added 57 packages in 2s
remote: -----> Launching...
remote: Done
remote: -----> https://my-snake-game.username.amvera.io deployed
Что происходит после push
- Платформа получает новый код.
- Определяет стек по
amvera.ymlили файлам в корне. - Устанавливает зависимости.
- Собирает проект, если требуется.
- Запускает приложение.
- Обновляет домен.
Если на каком-то этапе ошибка, сборка останавливается, а старая версия продолжает работать.
Обновление и откат
Любое изменение деплоится так:
git add .
git commit -m "Добавил новый уровень"
git push amvera main:master
Если новая версия сломалась, откатись через revert:
git log --oneline
git revert <хеш-коммита>
git push amvera main:master
Практический совет: перед первым деплоем запусти проект локально командой npm start и убедись, что он открывается по http://localhost:3000. Если не работает локально, в облаке тоже не заработает.
Переменные окружения и секреты
Практически любое приложение использует секретные данные: токены API, ключи базы данных, пароли. Хранить их в коде опасно — репозиторий может быть публичным, а Git сохраняет историю навсегда.
Переменные окружения передают приложению настройки извне. В одном окружении — тестовые ключи, в другом — боевые.
Частые переменные
Для «Змейки» с таблицей рекордов через Supabase могут понадобиться:
SUPABASE_URL— адрес проекта Supabase.SUPABASE_ANON_KEY— публичный ключ.SUPABASE_SERVICE_KEY— сервисный ключ для серверных операций.PORT— порт, на котором слушает сервер.NODE_ENV—developmentилиproduction.
Добавление в панели Amvera
В панели приложения открой раздел «Переменные и секреты» и нажми «Добавить переменные или секрет». Заполни пары «название — значение»:
| Ключ | Значение |
|---|---|
PORT |
80 |
SUPABASE_URL |
https://abcdef.supabase.co |
SUPABASE_ANON_KEY |
eyJhbGciOiJIUzI1NiIs... |
Токены, пароли и сервисные ключи добавляй как «секрет» — они хранятся отдельно от обычных переменных. Чтобы новые значения применились, перезапусти контейнер: на этапе сборки переменные окружения ещё недоступны, они появляются только у запущенного приложения. В коде переменные читаются через process.env в Node.js или os.environ в Python.
Пример в Node.js:
const supabaseUrl = process.env.SUPABASE_URL;
const supabaseKey = process.env.SUPABASE_ANON_KEY;
if (!supabaseUrl || !supabaseKey) {
console.error('Не заданы переменные окружения Supabase');
process.exit(1);
}
Тот же пример на Python:
import os
from supabase import create_client
supabase_url = os.environ.get('SUPABASE_URL')
supabase_key = os.environ.get('SUPABASE_ANON_KEY')
if not supabase_url or not supabase_key:
raise ValueError('Не заданы переменные окружения Supabase')
supabase = create_client(supabase_url, supabase_key)
Файл .env и .gitignore
Локально для разработки удобен файл .env, но его нельзя отправлять в Git. Добавь в .gitignore:
.env
node_modules/
.DS_Store
Пример для Supabase
const { createClient } = require('@supabase/supabase-js');
const supabase = createClient(
process.env.SUPABASE_URL,
process.env.SUPABASE_ANON_KEY
);
async function saveScore(name, score) {
const { data, error } = await supabase
.from('leaderboard')
.insert([{ name, score }]);
if (error) {
console.error('Ошибка сохранения результата:', error);
}
return data;
}
Важно: не выкладывай скриншоты панели с открытыми секретами. Даже удалённый пост может остаться в кэше поисковиков.
Привязка своего домена с HTTPS
Технический домен my-snake-game.username.amvera.io хорош для тестов, но для продукта хочется свой адрес. Amvera позволяет подключить собственный домен и автоматически выпустить SSL-сертификат для HTTPS.
Простыми словами
Домен — это человекочитаемый адрес. DNS — система, которая превращает его в IP-адрес сервера. Когда вводишь домен, браузер спрашивает DNS, получает IP Amvera и загружает страницу.
Шаг 1. Покупка домена
Купи домен у регистратора: REG.RU, Beget, Timeweb и других. Для учебного проекта подойдёт .ru или .рф, для серьёзного продукта — .com или .io, если доступны.
Шаг 2. Добавление домена в Amvera
В панели приложения найди раздел «Домены». Добавь купленный домен. Amvera покажет две записи, которые надо прописать у регистратора: A-запись с IP-адресом платформы и TXT-запись, подтверждающую, что домен твой.
| Тип | Имя | Значение |
|---|---|---|
| A | @ |
IP-адрес из настроек Amvera |
| TXT | @ |
Проверочная строка из настроек Amvera |
Шаг 3. Настройка DNS
В личном кабинете регистратора добавь записи, которые дала Amvera. DNS обновляется от нескольких минут до 24 часов, обычно 15–30 минут. Когда записи разошлись (проверить можно любым онлайн-чекером DNS или TXT lookup), вернись в панель и подтверди привязку домена — без этого шага сертификат не выпустится.
Шаг 4. HTTPS
После подтверждения домена Amvera настроит контроллер входящего трафика и автоматически выпустит SSL-сертификат через Let’s Encrypt. Сайт будет доступен по https://твой-домен.ru с зелёным замочком.
Если сертификат не появился, проверь DNS-записи через онлайн-сервис.
Редирект www
Чтобы сайт открывался только по одному адресу, настрой редирект с www на без www или наоборот. Это делается в панели Amvera или через DNS.
Практический совет: если домен ещё не куплен, сначала протестируй приложение на техническом домене Amvera, а свой домен подключи позже, когда продукт готов к публичному запуску.
Тарифы и сколько стоит
Конкретные цены лучше смотреть на amvera.ru, потому что они меняются. Ниже — общий принцип и цифры на середину 2026 года.
Сколько стоит младший тариф
Бесплатного плана у Amvera нет — есть поминутная тарификация со списанием раз в час, поэтому платишь только за время работы контейнера. Младший тариф «Пробный» (0,1 ЦПУ, 100 Мб ОЗУ, 2 Гб SSD) обходится в 0,24 ₽ в час, то есть около 170 ₽ за 30 дней. Для «Змейки» с таблицей рекордов этого обычно хватает, а для учебных экспериментов сумма сопоставима с чашкой кофе.
Платные тарифы
Отличаются большими ресурсами, большим числом приложений, приоритетной поддержкой и лимитами трафика. Оплата в рублях — банковской картой российского банка, юрлица платят по счёту. Amvera работает по предоплате: закончился баланс — контейнер останавливается.
| Тариф | Ресурсы | Цена за 30 дней |
|---|---|---|
| Пробный | 0,1 ЦПУ, 100 Мб ОЗУ, 2 Гб SSD | 170 ₽ |
| Начальный | 0,25 ЦПУ, 500 Мб ОЗУ, 5 Гб SSD | 290 ₽ |
| Начальный Плюс | 0,5 ЦПУ, 1 Гб ОЗУ, 7 Гб SSD | 490 ₽ |
| Стандартный | 1 ЦПУ, 2,5 Гб ОЗУ, 15 Гб SSD | 1450 ₽ |
| Ультра | 2 ЦПУ, 6 Гб ОЗУ, 25 Гб SSD | 4300 ₽ |
Каждый гигабайт диска сверх тарифа стоит 35 ₽ за 30 дней хранения.
| Этап проекта | Тариф | Почему |
|---|---|---|
| Учебный проект | Пробный | Минимальные расходы, ресурсов достаточно |
| Прототип для знакомых | Начальный | Стабильнее, больше памяти |
| Публичный продукт | Начальный Плюс или Стандартный | Домен, трафик, запас по CPU |
| Растущий продукт | Ультра и выше | Масштабирование |
Сравнение с зарубежными хостингами
Vercel, Railway, Render или Heroku удобны, но для пользователей из РФ есть нюансы: иностранная карта, ограничения доступа, английская поддержка. Amvera лишена этих проблем, поэтому для старта из России она зачастую проще.
Важно: не покупай дорогой тариф «на вырост». Начни с самого дешёвого, а повышай план, только когда упираешься в лимиты.
Частые ошибки деплоя
1. Порт не совпадает с настройками
Если в коде app.listen(3000), а в amvera.yml не указан containerPort: 3000, приложение будет работать, но снаружи отдаст «Service Unavailable 503». Проще всего слушать PORT — в контейнере он равен 80:
const PORT = process.env.PORT || 3000;
app.listen(PORT);
2. Нет команды запуска
Для Node.js в package.json должна быть команда start, а в amvera.yml — точка входа scriptName:
"scripts": {
"start": "node server.js"
}
3. Зависимости не в package.json
Если библиотека используется, но не прописана в dependencies, сборка упадёт. Проверь, что все пакеты указаны.
4. Опечатки в переменных окружения
Если приложение ждёт SUPABASE_URL, а в панели SUPABASE_ULR, подключение не сработает. Проверяй названия.
5. Папка node_modules в Git
Если в репозиторий попала node_modules, деплой может зависнуть или упасть. Добавь в .gitignore:
echo "node_modules/" >> .gitignore
git rm -r --cached node_modules
git commit -m "Удалена node_modules из репозитория"
git push amvera main:master
6. DNS ещё не обновился
После настройки домена нужно подождать. Проверь через онлайн-чекер DNS, что A-запись указывает на IP Amvera, а TXT-запись видна — только потом подтверждай домен в панели.
7. Использование абсолютных путей
Локально проект может работать с путями вроде C:/Users/.../index.html, но в облаке такого пути нет. Используй относительные пути:
const path = require('path');
app.use(express.static(path.join(__dirname, 'public')));
8. Большие файлы в репозитории
Видео, тяжёлые изображения и архивы не стоит хранить в Git. Они увеличивают размер репозитория, замедляют деплой и могут упираться в лимиты. Храни медиа во внешнем хранилище или CDN.
9. Игнорирование логов после деплоя
Логи в панели Amvera — главный инструмент диагностики. Если сайт не открывается, первым делом смотри туда. Там видно, упало ли приложение, не хватает ли переменной окружения или зависимости.
10. Push не в ту ветку
Сборка стартует только по ветке master. Пуш git push amvera main создаст в репозитории Amvera ветку main, и деплоя не будет — команда сработает, а сайт останется старым. Правильный вариант: git push amvera main:master.
Частые вопросы
Можно ли бесплатно разместить сайт на Amvera?
Бесплатного тарифа нет. Самый дешёвый — «Пробный», 0,24 ₽ в час (около 170 ₽ за 30 дней), тарификация поминутная, так что остановленный проект денег не тратит. Актуальные условия смотри на сайте Amvera.
Обязательно ли знать Git?
Да, базовый минимум: git add, git commit, git push. Подробнее про GitHub и токены — в статье «Что такое GitHub и token».
Подойдёт ли Amvera для лендинга?
Да, Amvera поддерживает статические сайты. Лендинг на Next.js или чистом HTML/CSS/JS деплоится так же, как серверное приложение. Про Next.js и Claude — в статье «Лендинг на Next.js с Claude».
Как быстро обновляется сайт после git push?
Обычно от нескольких секунд до пары минут. В панели можно следить за сборкой и увидеть ошибки.
Что делать, если приложение не запускается?
Открой логи в панели Amvera. Проверь порт и containerPort, команду запуска, зависимости и переменные окружения. Если локально работает, а в облаке нет — дело почти всегда в одном из этих пунктов.
Нужен ли VPN для работы с Amvera из России?
Нет, Amvera — российский сервис, доступ обычно работает без VPN.
Заключение + чек-лист
Amvera — рабочий способ вывести первое приложение в интернет без иностранных карт и VPN. Мы реально используем Amvera для своих проектов и знаем: от регистрации до рабочего сайта — считанные минуты, если проект подготовлен правильно.
Главное — попасть в нужный порт, пушить в ветку master, прописать зависимости и не хранить секреты в коде. После этого деплой превращается в рутину: написал код — запушил — получил сайт.
Чек-лист деплоя на Amvera
- Создан аккаунт на Amvera и подтверждён email.
- Пополнен баланс: бесплатного тарифа нет, списание идёт по минутам.
- Создано первое приложение в панели.
- Выбран правильный стек.
- Репозиторий Amvera добавлен как remote (или связан GitHub).
- В корне проекта есть файл запуска, команда
startиamvera.yml. - Приложение использует переменную окружения
PORTлибо порт объявлен черезcontainerPort. - Все зависимости прописаны.
-
node_modulesи.envдобавлены в.gitignore. - Секреты добавлены в разделе «Переменные и секреты» и контейнер перезапущен.
- Приложение протестировано локально.
- Выполнен
git push amvera main:masterи сайт открывается. - При необходимости подключён собственный домен: A-запись, TXT-запись, подтверждение в панели, HTTPS.
- Проверены логи после деплоя.
Если хочешь пройти путь от первой строчки кода до опубликованного продукта — присоединяйся к Skillmake.
Источники
- Amvera — официальный сайт: amvera.ru
- Документация Amvera: docs.amvera.ru
Читай дальше
Все статьиНе просто статьи — тебя доведут до результата
В практикуме за 1999 ₽ рядом живая команда практикующих разработчиков и маркетологов: ведём по шагам до твоего работающего приложения. Не «ролики и сам разбирайся» — помогаем на каждом затыке.
Перейти к практикуму