Skip to main content

Development Guide

Setting up

This assumes you're using vscode and will want to use the debugging tools for the backend. If you're not using vscode then skip the launch.json section.

Project Layout

Clone the repo:

git clone https://github.com/SelfhostedPro/Yacht.git

Create the config directory for the sqlite db:

cd Yacht
mkdir backend/config

Requirements

Install the backend requirements

cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Install the frontend requirements

cd ../frontend
npm install

Setup a launch.json (optional)

in the root directory create a .vscode folder and paste the following launch.json:

.vscode/launch.json
{
"configurations": [
{
"name": "Python: Module",
"type": "python",
"request": "launch",
"module": "uvicorn",
"args": [
"backend.api.main:app",
"--reload"
]
}
]
}

Run everything

Start the backend using the run button in the debugging tab in vscode or manually run it. Then for the frontend run the following from inside the frontend folder:

npm run serve

Script:

Here is an untested script that basically combines everything except for the launch.json stuff:

#!/bin/bash
git clone https://github.com/SelfhostedPro/Yacht.git
cd Yacht
mkdir config
cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cd ../frontend
npm install

Then just use the "Run Everything section above