From aa910cc8a9184fdda7ecc269c74ad1f882764df7 Mon Sep 17 00:00:00 2001 From: kittyegg Date: Thu, 14 May 2026 02:03:36 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D1=80=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 1 - README.md | 74 +++++++++++++++++++ ...-compose.yml => docker-compose.example.yml | 4 +- 3 files changed, 76 insertions(+), 3 deletions(-) rename docker-compose.yml => docker-compose.example.yml (67%) diff --git a/.env.example b/.env.example index fe84159..3c51c9a 100644 --- a/.env.example +++ b/.env.example @@ -1,4 +1,3 @@ POSTGRES_USER=app POSTGRES_PASSWORD=app POSTGRES_DB=appdb -DB_HOST=db \ No newline at end of file diff --git a/README.md b/README.md index 59a010f..815cc45 100644 --- a/README.md +++ b/README.md @@ -1 +1,75 @@ # URL Shortener + +Простой API для создания коротких URL и сбора статистики по переходам + +## Возможности + +- Создание коротких ссылок +- Редирект по короткому URL +- Сбор статистики переходов +- REST API +- PostgreSQL в качестве базы данных +- Swagger для демонстрации HTTP-запросов +- Запуск через Docker Compose + +## Установка + +```bash +git clone https://github.com/ryzij/URL-Shortener.git url-short +cd url-short +``` + +### Настройка окружения + +```bash +cp .env.example .env +``` + +Пример `.env`: +``` +# Укажите свои значения +POSTGRES_USER=app +POSTGRES_PASSWORD=app +POSTGRES_DB=appdb +``` + +### Настройка `docker-compose.yml` + +```bash +cp docker-compose.example.yml docker-compose.yml +``` + +Пример `docker-compose.yml`: +```yml +services: + api: + build: . + ports: + - "5000:8080" + depends_on: + - db + environment: + ConnectionStrings__DefaultConnection: Host=db;Database=${POSTGRES_DB};Username=${POSTGRES_USER};Password=${POSTGRES_PASSWORD} + + db: + image: postgres:17 + restart: always + environment: + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + POSTGRES_DB: ${POSTGRES_DB} + volumes: + - pg_data:/var/lib/postgresql/data + +volumes: + pg_data: +``` + +## Запуск + +```bash +docker compose up --build -d +``` + +После запуска Swagger будет доступен по адресу: +http://localhost:5000/swagger diff --git a/docker-compose.yml b/docker-compose.example.yml similarity index 67% rename from docker-compose.yml rename to docker-compose.example.yml index b1858bc..e2063d4 100644 --- a/docker-compose.yml +++ b/docker-compose.example.yml @@ -6,10 +6,10 @@ services: depends_on: - db environment: - ConnectionStrings__DefaultConnection: Host=${DB_HOST};Database=${POSTGRES_DB};Username=${POSTGRES_USER};Password=${POSTGRES_PASSWORD} + ConnectionStrings__DefaultConnection: Host=db;Database=${POSTGRES_DB};Username=${POSTGRES_USER};Password=${POSTGRES_PASSWORD} db: - image: postgres:16 + image: postgres:17 restart: always environment: POSTGRES_USER: ${POSTGRES_USER}