update instructions, add docker compose file for autorestart and local build

dev
Anton Franzluebbers 2023-05-20 20:16:30 -04:00
parent f669b899ce
commit 1c1c53497c
5 changed files with 56 additions and 28 deletions

1
.gitignore vendored
View File

@ -11,6 +11,7 @@ discord_bot/graph.png
discord_bot/config.py
env_win/
velconnect.db
db/
velconnect*.db
.idea/
velconnect/data/

View File

@ -1,23 +1,37 @@
## VELConnect API Setup
### Option 1: Pull from Docker Hub:
## Option 1: Build and run using Docker Compose
```sh
cd velconnect
docker compose up -d
```
and visit http://localhost:8000 in your browser.
This will set up autorestart of the docker image. To pull updates, just run `docker compose up -d` again.
## Option 2: Pull from Docker Hub:
```sh
docker run -p 80:80 velaboratory/velconnect
```
and visit http://localhost in your browser.
or
or
```sh
docker run -p 8000:80 --name web velaboratory/velconnect
```
to access from http://localhost:8000 in your browser and name the container "web".
### Option 2: Build Docker Image:
to access from http://localhost:8000 in your browser and name the container "web".
## Option 3: Build Docker Image:
Make sure you're in the `velconnect/` folder.
```
```sh
docker build --tag velconnect .
docker rm web
docker run -p 80:80 --name web velconnect
@ -25,31 +39,35 @@ docker run -p 80:80 --name web velconnect
or run `./rebuild.sh`
### Option 3: Run Python locally (WSL or native Linux)
## Option 4: Run Python locally (WSL or native Linux)
1. `cd velconnect`
2. Create pip env: `python3 -m venv env`
3. Activate the env `. env/bin/activate`
4. Install packages `pip install -r requirements.txt`
5. Add `config_mysql.py`
- Get from some old server
- Or copy and fill out the values from `config_mysql_template.py`
- Get from some old server
- Or copy and fill out the values from `config_mysql_template.py`
6. Run `./run_server.sh`
- Or set up systemctl service:
```ini
[Unit]
Description=VELConnect API
Requires=network.target
After=network.target
[Service]
User=ubuntu
Group=ubuntu
Environment="PATH=/home/ubuntu/VEL-Connect/velconnect/env/bin"
WorkingDirectory=/home/ubuntu/VEL-Connect/velconnect
ExecStart=/home/ubuntu/VEL-Connect/velconnect/env/bin/uvicorn --port 8005 main:app
[Install]
WantedBy=multi-user.target
```
- Enter the above in `/etc/systemd/system/velconnect.service`
- `sudo systemctl enable velconnect`
- `sudo systemctl start velconnect`
- Or set up systemctl service:
```ini
[Unit]
Description=VELConnect API
Requires=network.target
After=network.target
[Service]
User=ubuntu
Group=ubuntu
Environment="PATH=/home/ubuntu/VEL-Connect/velconnect/env/bin"
WorkingDirectory=/home/ubuntu/VEL-Connect/velconnect
ExecStart=/home/ubuntu/VEL-Connect/velconnect/env/bin/uvicorn --port 8005 main:app
[Install]
WantedBy=multi-user.target
```
- Enter the above in `/etc/systemd/system/velconnect.service`
- `sudo systemctl enable velconnect`
- `sudo systemctl start velconnect`

View File

@ -0,0 +1,9 @@
version: "1.0"
services:
web:
build: .
restart: always
ports:
- "8000:80"
volumes:
- ./db:/usr/src/velconnect/db

View File

@ -12,7 +12,7 @@ from enum import Enum
import db
db = db.DB("velconnect.db")
db = db.DB("db/velconnect.db")
# APIRouter creates path operations for user module
router = fastapi.APIRouter(

View File

@ -2,7 +2,7 @@ import fastapi
import db
db = db.DB("velconnect.db")
db = db.DB("db/velconnect.db")
# APIRouter creates path operations for user module
router = fastapi.APIRouter(