https://github.com/dmitriiviktorov/instantmessages
Instant messaging service. FastApi + Websocket + Postgresql + Redis + Celery. Register and chat with other users.
https://github.com/dmitriiviktorov/instantmessages
aiogram-bot alembic celery docker fastapi nginx postgresql redis websocket
Last synced: 2 months ago
JSON representation
Instant messaging service. FastApi + Websocket + Postgresql + Redis + Celery. Register and chat with other users.
- Host: GitHub
- URL: https://github.com/dmitriiviktorov/instantmessages
- Owner: DmitriiViktorov
- Created: 2024-10-16T09:13:28.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-11-01T12:23:34.000Z (over 1 year ago)
- Last Synced: 2025-02-08T23:45:37.809Z (over 1 year ago)
- Topics: aiogram-bot, alembic, celery, docker, fastapi, nginx, postgresql, redis, websocket
- Language: Python
- Homepage:
- Size: 102 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Сервис обмена мгновенными сообщениями

Сервис обмена мгновенными сообщениями
## Возможности сервиса
Сервис представляет собой приложение для общения с любым пользователем в режиме реального времени.
Для начала общения необходимо зарегистрироваться и перейти в раздел Chats (чаты).
Обратите внимание, что при регистрации необходимо указать ваш telegram аккаунт.
Это нужно для того, чтобы вы могли общаться с нашим ботом, где вы сможите подписаться на уведомление о новых сообщениях,
если вы не онлайн.
## Установка
Сервис мгновенных сообщений разворачивается с помощью запуска нескольких взаимосвязанных контейнеров:
- `web`: само приложение с логикой работы, эндпоинтами и методами
взаимодействия с базой данных, а так же телеграм бот и очередь задач на celery.
- `postgres`: СУБД PostgreSQL, где хранится вся информация о пользователях и сообщениях.
- `nginx`: Nginx обеспечивает централизованную маршрутизацию, балансировку нагрузки и работу со статическими файлами.
### Шаги установки:
1. **Клонирование репозитория:**
Для установки необходимо клонировать репозиторий с помощью следующей команды:
```bash
git clone https://github.com/DmitriiViktorov/InstantMessages.git
```
2. **Создание .env файла**
После клонирования репозитория в корневой директории проекта необходимо создать
.env файл и указать там следующие типы настроек:
- POSTGRES_USER=< ваше имя пользователя >
- POSTGRES_PASSWORD=< ваш пароль для этого пользователя >
- POSTGRES_DB=< название базы данных >
- POSTGRES_HOST=db
- POSTGRES_PORT=5432
- AUTH_SECRET=<ваша_строка_для_шифрования_данных_аутентификации>
(пример: 'mVFJwu9PpL2s?a1yviK0eIHMtc5!,k_bfgh6Br.YEx8GZRSD7jMbsoWEXfgJz05_RqCKinZSP6eLDNvhmG2YHA9-?p!ryjkdITu8')
- PASSWORD_RESET=<ваша_строка_для_шифрования_токенов_сброса_пароля>
(привер: '5lbiPzhV_74TeEyw0nuAKWmZFJv?xO!pMXaRSH6,IBG3j1L8cU')
- BOT_TOKEN=<ваш_телеграм_бот_токен>
(как зарегистрировать свой телеграм-бот: https://t.me/botfather)
3. **Запуск сервиса**
После перехода в корневую директорию проекта запустите сервис с помощью Docker Compose:
```bash
docker-compose up --build
```
4. **Доступ к приложению**
После успешного запуска сервис будет доступен по адресу http://localhost.
## Использование
После запуска сервиса им сразу можно пользоваться по прямому назначению.
После регистрации пользователь увидит страницу своего профиля, на которой будет ссылка на телеграм бот InstantMessages,
где он сможет подписаться на получение уведомлений.
Перейдя в раздел Chats пользователь выбирает другого пользователя для начала общения и переходит в чат с ним.
## Описание API
API данного приложения документировано с использованием OpenAPI.
Для ознакомления с документацией API, перейдя по следующей ссылке:
- [Документация API](http://localhost:5050/docs)
## Контактная информация
В случае возникновения вопросов, комментариев, замечаний по работе приложения вы можете связаться со мной:
- Email: viktorovokrl@gmail.com
- Github: https://github.com/DmitriiViktorov/twitter
- Telegram: https://t.me/ViktorovDV