A robust REST API built with FastAPI, featuring user authentication, PostgreSQL integration, and containerized deployment.
- User authentication with JWT tokens
- Password hashing for secure storage
- PostgreSQL database integration
- Docker containerization
- Automated testing with pytest
- CI/CD pipeline with GitHub Actions
- Production deployment on Ubuntu VM
- Custom domain configuration (atharva.my)
- SSL/TLS encryption with Let's Encrypt
- HTTPS-only secure access
- FastAPI
- PostgreSQL
- SQLAlchemy
- Alembic (for database migrations)
- pytest (for testing)
- Docker
- GitHub Actions
- Gunicorn (WSGI HTTP Server)
- Nginx (Reverse Proxy)
- Ubuntu Server (VM)
- Certbot (SSL/TLS certificates)
- Let's Encrypt (Certificate Authority)
- Custom Domain (atharva.my)
- Python 3.8+
- PostgreSQL
- Docker (optional)
- Ubuntu Server
- Python 3.8+
- PostgreSQL
- Nginx
- Gunicorn
- Clone the repository
- Create and activate virtual environment
- Install dependencies
- Set up environment variables
- Run database migrations
- Start the application
- Build the Docker image
- Run the container
Once the application is running, you can access:
- Swagger UI documentation at
/docs
- ReDoc documentation at
/redoc
POST /users/
: Create a new userPOST /login
: Login user and receive access token
- Requires JWT token authentication
- Include token in Authorization header:
Bearer <token>
The application can be deployed using Docker and includes GitHub Actions workflows for automated testing and deployment.