Blog

NikoSyb — блог фронт + бэк

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

В режиме разработки

  1. Скопируйте переменные окружения
cp user-client/env/.env.dev user-client/.env
cp post-service/env/.env.dev post-service/.env
  1. Запустите docker-compose
docker-compose -f docker/compose.dev.yaml up
  1. Перейдите на http://localhost
open http://localhost

В режиме продакшена

  1. Поместите ваш ключ и сертификат в nginx/ssl

  2. Замените 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;
  1. Замените 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
...
  1. Настройте .env.prod с учетом ваших данных
.
├── post-service
│   └─── env
│       └── .env.prod
└── user-client
    └─── env
        └── .env.prod 
  1. Скопируйте переменные окружения
cp user-client/env/.env.prod user-client/.env
cp post-service/env/.env.prod post-service/.env
  1. Запустите docker-compose
docker-compose -f docker/compose.prod.yaml up
  1. Теперь приложение доступно на вашем домене или на localhost
Page 1