NikoSyb
NikoSyb - блог фронт + бэк, фронт на Next Js + TS, бэк на Go + Gin, Gorm. Идея, хранить в бд посты с текстом MarkDown, передавать его через API, парсить на фронте и рендерить.
Структура
.
├── docker -- Композ файлы
├── images -- Изображения для README.md
├── nginx -- Конфигурации nginx и (опционально) ключ с сертификатом
├── post-service -- Сервис постов
├── user-client -- Пользовательский клиент
└── README.md -- Вы сейчас здесь
Запуск
- Склонируйте репозиторий
git clone https://github.com/Nikolay-Yakunin/NikoSyb.git
cd NikoSyb
В режиме разработки
- Скопируйте переменные окружения
cp user-client/env/.env.dev user-client/.env
cp post-service/env/.env.dev post-service/.env
- Запустите docker-compose
docker-compose -f docker/compose.dev.yaml up
- Перейдите на
http://localhost
open http://localhost
В режиме продакшена
-
Поместите ваш ключ и сертификат в
nginx/ssl -
Замените
your_cert.pemиyour_private_key.pemв конфигурации nginx
nginx/prod.conf
server_name example.com; # Replace with your domain
ssl_certificate /etc/nginx/ssl/your_cert.pem; # Replace with your cert
ssl_certificate_key /etc/nginx/ssl/your_private_key.pem; # Replace with your key
ssl_protocols TLSv1.2 TLSv1.3;
- Замените
example.comна ваш домен
nginx/prod.conf
server {
listen 80;
server_name example.com; # Replace with your domain
return 301 https://$host$request_uri;
}
...
server {
listen 443 ssl;
server_name example.com; # Replace with your domain
ssl_certificate /etc/nginx/ssl/your_cert.pem; # Replace with your cert
...
- Настройте
.env.prodс учетом ваших данных
.
├── post-service
│ └─── env
│ └── .env.prod
└── user-client
└─── env
└── .env.prod
- Скопируйте переменные окружения
cp user-client/env/.env.prod user-client/.env
cp post-service/env/.env.prod post-service/.env
- Запустите docker-compose
docker-compose -f docker/compose.prod.yaml up
- Теперь приложение доступно на вашем домене или на
localhost