mirror of
https://github.com/i701/sarlink-portal-api.git
synced 2025-07-04 05:12:28 +00:00
b149c86899125c473cde595c26fed0fd3d8cf4eb
sarlink-portal-api
API for SARLink portal in Django Rest Framework.
Deployment steps
- clone the repo
git clone git@github.com:i701/sarlink-portal-api.git
- Create virtual enviroment
virtualenv venv
and activate itsource venv/bin/activate
- Install requirements
pip install -r requirements.txt
- Copy .env.example to .env and fill in the configs
cp .env.example .env
- generate static
python manage.py collectstatic
- Run Migrations
python manage.py migrate
deployement with Docker
- Create
compose.yml
services:
portal-api:
hostname: portal-api
image: git.shihaam.dev/sarlink/sarlink-portal-api/api
env_file: .env.api
nginx:
hostname: portal-api-nginx
image: git.shihaam.dev/sarlink/sarlink-portal-api/nginx
volumes_from:
- portal-api
ports:
- 4000:80
depends_on:
- portal-api
portal-db:
image: postgres:14
restart: always
hostname: portal-db
volumes:
- ./database:/var/lib/postgresql/data
env_file: .env.db
- Start services:
docker compose up -d
- Run Migrations:
docker compose exec portal-api python manage.py migrate
- Test api with curl:
curl -X POST http://localhost:4000/api/auth/login/ \
-H "Content-Type: application/json" \
-d '{"username":"admin", "password":"soemthign"}'
expected response: {"message":"Unable to log in with provided credentials."}
- For procrastinate (postgres background tasks) to work run the worker
python manage.py procrastinate worker
Languages
Python
95.9%
HTML
2.8%
Dockerfile
1%
Shell
0.2%
Just
0.1%