STeVe v3 uses uv as the project manager. You can install uv via:
curl -LsSf https://astral.sh/uv/install.sh | sh
For other installation methods, see the uv installation documentation.
You'll also need to have Git and SQLite 3.x installed on your system. You can verify their installation by running:
git --version sqlite3 --version
Clone the STeVe repository from GitHub:
git clone https://github.com/apache/steve.git
First of all, head over to the v3/ directory. This is where all the current development is happening.
cd steve # navigate to the cloned repository cd v3 # navigate to the v3 directory
Run the following command to set up the development environment using uv:
uv sync
Head into the server directory for preparing data:
cd server
Create the steve.db file by loading the schema:
sqlite3 steve.db < ../schema.sql
Load steve.db‘s “person” table with ASF userids. For this step, you will need access to the ASF LDAP server. If you don’t have access, please reach out on the developer mailing list or Slack channel for assistance.
cat > bin/bind.txt # <2 magic lines for user/pass; talk to me on Slack>
Once bind.txt is ready, run the LDAP loading script (this may take a few minutes):
uv run bin/asf-load-ldap.py
Then prepare some fake testing data:
uv run bin/load-fakedata.py --owner-pid <your_asf_id> # e.g., tison
All the data is now prepared.
Ensure you are in the server directory.
Before running the server, you need to create the config file and generate server certificates.
To create the config file, copy the example config:
cp config.yaml.example config.yaml
Then, follow the instructions in server/certs/README.md to create self-signed certificates for development purposes.
Now, you can run the server with:
uv run main.py # ensure you are in the server/ directory
Point your browser to https://localhost:58383/
Congratulations! You should see the STeVe v3 web interface.
If you modify anything (code, templates), then the server should automatically reload the change.
If you run into a problem, please reach out on the developer mailing list or Slack channel for assistance.