Прототип коллективного блога.
ДИСКЛЕЙМЕР: целью было быстро сделать прототип. Писалось всё быстро и на коленке, код дурно пахнет и на 100% подлежит переписыванию.
Файл .env.sample
необходимо скопировать в .env
и заполнить или скорректировать необходимые значения.
В hosts добавить:
127.0.0.1 orbitar.local api.orbitar.local
# Можно дополнить списком подсайтов по вкусу (опционально)
127.0.0.1 idiod.orbitar.local
-
Запустить контейнер с базой и веб-роутером (в корне проекта):
docker-compose -p orbitar-dev -f docker-compose.dev.yml up
mysql повиснет на стандартном 3306 порту, redis на 6379.
Веб-роутер на 80 порту - будет перенаправлять запросы с
*.orbitar.local
наlocalhost:5000
(фронт), аapi.orbitar.local
наlocalhost:5001
(бэк). -
Запустить фронт в режиме отладки (в папке
frontend
):- Установить зависимости:
npm install
- Запустить node:
npm run start
- Установить зависимости:
-
Запустить бэк в режиме отладки (в папке
backend
):- Установить зависимости:
npm install
- Выполнить миграции БД
npm run migration:dev up
- Запустить node:
npm run start:dev
- Установить зависимости:
После первого запуска можно открыть приглашение http://orbitar.local/invite/initial и зарегистрировать первый юзернейм.
-
Сгенерировать client_id на странице https://api.imgur.com/oauth2/addclient.
В
Authorization type
выбратьAnonymous usage
, вAuthorization callback URL
- любой валидный URL (он требуется для регистрации, но не используется). -
В корневом
.env
файле прописать полученныйclient_id
IMGUR_CLIENT_ID=<client_id>
-
Перезапустить caddy
docker-compose -p orbitar-dev -f docker-compose.dev.yml up -d caddy
-
В
frontend/.env.local
добавитьWDS_SOCKET_PORT=0
-
Сгенерировать самоподписанный сертификат для https:
cd caddy openssl req -x509 -sha256 -nodes -newkey rsa:2048 -days 365 \ -config openssl.cnf -extensions req_ext \ -keyout certs/orbitar.key -out certs/orbitar.crt
Сгенерированный
certs/orbitar.crt
добавить в систему/браузер как доверенный. -
Для запуска контейнеров использовать конфиг
docker-compose.ssl.dev.yml
-
Настроить https, либо разрешить в браузере работу Service Workers по http.
-
В директории
backend
выполнить генерацию VAPID-ключей:npx web-push generate-vapid-keys
-
Сгенерированные ключи прописать в
backend/.env.local
и указать ваш контактный адрес (email или url):VAPID_PUBLIC_KEY=<Public Key> VAPID_PRIVATE_KEY=<Private Key> VAPID_CONTACT=<email@email.com>
-
В
frontend/.env.local
добавить публичный ключ:REACT_APP_VAPID_PUBLIC_KEY=<Public Key>
# Пересборка фронта и бэка (если необходимо)
docker-compose -p orbitar -f docker-compose.local.yml build --no-cache frontend backend
# Запуск
docker-compose -p orbitar -f docker-compose.local.yml up
Использование:
(в папке backend
, перед первым запуском выполнить npm install
)
npm run generate-dummy-content -- --help
Например:
npm run generate-dummy-content -- -u 10 -s 8 -p 20 -c 100