blob: b2db15c12ffb527b0e3b8a61354dcef769b89a10 [file] [log] [blame] [view]
# Getting Started
## Prerequisites
STeVe v3 uses `uv` as the project manager. You can install `uv` via:
```shell
curl -LsSf https://astral.sh/uv/install.sh | sh
```
For other installation methods, see the [uv installation documentation](https://docs.astral.sh/uv/getting-started/installation/).
You'll also need to have [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) and [SQLite 3.x](https://www.sqlite.org/download.html) installed on your system. You can verify their installation by running:
```shell
git --version
sqlite3 --version
```
## Cloning the Repository
Clone the STeVe repository from GitHub:
```shell
git clone https://github.com/apache/steve.git
```
## Setting Up the Development Environment
First of all, head over to the `v3/` directory. This is where all the current development is happening.
```shell
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`:
```shell
uv sync
```
## Preparing the Database
Head into the `server` directory for preparing data:
```shell
cd server
```
Create the steve.db file by loading the schema:
```shell
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.
```shell
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):
```shell
uv run bin/asf-load-ldap.py
```
Then prepare some fake testing data:
```shell
uv run bin/load-fakedata.py --owner-pid <your_asf_id> # e.g., tison
```
All the data is now prepared.
## Running the Server
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:
```shell
cp config.yaml.example config.yaml
```
Then, follow the instructions in [`server/certs/README.md`](../server/certs/README.md) to create self-signed certificates for development purposes.
Now, you can run the server with:
```shell
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.