Installation¶
Local Development¶
Prerequisites¶
- Python 3.10+
- uv (recommended) or pip
Steps¶
# Clone the repository
git clone https://github.com/jsenecal/fastpki.git
cd fastpki
# Create and activate a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies (including dev tools)
uv pip install -e ".[dev]"
# Create a .env file from the example
cp .env.example .env
# Create the data directory for SQLite
mkdir -p data
# Run the application
uvicorn app.main:app --reload
The API is now available at http://localhost:8000. Interactive docs are at http://localhost:8000/api/v1/docs.
CLI Tool¶
The FastPKI CLI is published on PyPI as a standalone client. It does not require the server code — just install and point it at a running FastPKI instance:
# Install from PyPI
pip install fastpki
# or
uv tool install fastpki
# Configure the server
fastpki config set server.url http://localhost:8000
# Login
fastpki auth login -u admin -p securepassword
# Use it
fastpki ca list
fastpki cert list -o json
See the CLI guide for full documentation.
Docker — Development¶
Development mode mounts the source tree into the container so code changes reload automatically.
# Clone and enter the repo
git clone https://github.com/jsenecal/fastpki.git
cd fastpki
# Copy the example env file
cp .env.example .env
# Create the data directory
mkdir -p data
# Start in development mode (SQLite, live reload)
docker-compose -f docker/docker-compose.yml -f docker/docker-compose.dev.yml up -d
Docker — Production¶
Production mode uses PostgreSQL and does not mount the source tree.
See Docker deployment for full details on volumes, environment variables, and building custom images.