https://github.com/dontsovcmc/fastapi_test
FastAPI, Docker, GitHub Actions with deploy to private VPS
https://github.com/dontsovcmc/fastapi_test
Last synced: 5 months ago
JSON representation
FastAPI, Docker, GitHub Actions with deploy to private VPS
- Host: GitHub
- URL: https://github.com/dontsovcmc/fastapi_test
- Owner: dontsovcmc
- Created: 2022-04-07T19:47:47.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-04-10T14:29:41.000Z (about 4 years ago)
- Last Synced: 2025-04-07T23:44:54.398Z (about 1 year ago)
- Language: Dockerfile
- Size: 20.5 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# fastapi_test
FastAPI, Docker, GitHub Actions with deploy to private VPS
Есть программа - веб сервер.
Запускается в докер контейнере на виртуальном сервере (VPS).
Обновляем код и перезапускаем докер контейнер при коммите в ветку main репозитория на GitHub, используя технологию GitHub Actions.
### Команды docker
На сервере для проверки удобно использовать следующие команды:
#### посмотреть логи всех контейнеров докера
выполнять в папке с docker-compose.yml файлом
`
docker-compose logs -f
`
#### посмотреть список контейнеров
выполнять в папке с docker-compose.yml файлом
`
docker-compose ps
`
#### подключиться к командной строке контейнера
`
docker exec -it bash
`
# VPS setup
## Ставим на сервер docker-compose
https://docs.docker.com/compose/install/
```
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
```
https://docs.docker.com/engine/install/linux-postinstall/
```
sudo groupadd docker
sudo usermod -aG docker $USER
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
```
# Настройка GitHub Actions
## Первичная настройка Secrets
Для работы потребуется:
```
HOST - указываем ip адрес VPS
USERNAME - указываем имя пользователя VPS
SSHKEY - указываем приватный ssh ключ. его создание описано ниже
```
### Делаем доступ по ssh на VPS
0. Заходим на VPS
`ssh @`
1. Создаем ssh ключ для github
`ssh-keygen -t rsa -b 4096 -C ""`
назовём файл github
без фразы without pass phrase
2. записываем публичный ключ в список доступа
`cat github.pub >> ~/.ssh/authorized_keys`
5. Печатаем и копируем в буфер приватный ключ
`cat github`
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAACFwAAAAdzc2gtcn
........
/gZe/RaaYlJdjQAAABRkb24tYW5kLWhvbWVAbWFpbC5ydQECAwQF
-----END OPENSSH PRIVATE KEY-----
6. Добавляем ключ в github secrets
`https://github.com///settings/secrets/actions`
имя переменной: SSHKEY
Теперь GitHub может заходить по ssh на VPS.