для начала
- создать файл
.envв корне проекта и заполнить его переменными окружения, пример представлен в файле.env.example:
cp .env.example .env- создать базу данных по пути database/database.db
- должен быть установлен докер и docker-compose
- клонируем репозиторий и переходим в папку с проектом:
git clone https://github.com/kerrek8/practice.git cd practice - создаём image
docker build -t practice . - запускаем контейнер:
docker run -d -p 8080:8080 --name practice_app practice
- открываем браузер и переходим по адресу
http://localhost:8080
- либо docker-compose:
docker-compose up --build
У вас уже должен быть установлен Go версии 1.20 или выше (но вероятно если версия ниже 1.24, то go.mod будет ругаться).
Для запуска приложения на локальной машине нужно:
- клонировать репозиторий:
git clone https://github.com/kerrek8/practice.git
- перейти в папку с проектом:
cd practice - установить зависимости:
go mod download
- запустить миграции:
go run ./cmd/migrator/main.go --migrations-path=./migrations
- запустить приложение:
go run ./cmd/api/main.go
- открыть браузер и перейти по адресу
http://localhost:8080
Хостинг на сервисе Render:
-
зарегестрироваться на сайте https://render.com/
-
привязать свой гитхаб аккаунт, если еще не привязан
-
клонировать репозиторий в свой аккаунт (форк)
-
создать новый сервис на Render, выбрав тип "Web Service"
-
ввести имя сервиса и выбрать регион
-
выбрать репозиторий с проектом
-
установить переменные окружения, которые указаны в файле
.env.example -
health check установить на
/health -
Dockerfile Path:
Dockerfile.forrender
войти как admin:
- логин:
admin - пароль:
admin
В будущем можно сделать:
- можно добавить проверку на одинаковые объявления (пока не делаю, не уверен, что это нужно)
- добавить проверку на валидность города
- разделить для каждой страницы свои стили и скрипты
- добавить смену пароля, смену имени, функционал восстановления пароля
- изменить логику создания первого админа