Compare commits
No commits in common. "5c6448f96a1e8ddcd4c004360d40eeedd35e619d" and "422baeaae28605d7800404c8b7d7d3cf3b8de9de" have entirely different histories.
5c6448f96a
...
422baeaae2
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,3 +1,3 @@
|
|||||||
__pycache__
|
__pycache__
|
||||||
upload
|
upload
|
||||||
env
|
venv
|
||||||
|
77
README.md
77
README.md
@ -10,20 +10,57 @@ To run on a regular system I recommend to use a virtual environment to install t
|
|||||||
|
|
||||||
We will also be setting up an specific user to run the app as safe as possible with a systemd service file for startup
|
We will also be setting up an specific user to run the app as safe as possible with a systemd service file for startup
|
||||||
|
|
||||||
#### Installing
|
|
||||||
```bash
|
```bash
|
||||||
./install.sh
|
# Create the user (You can specify a different home-dir)
|
||||||
|
sudo useradd --shell /bin/bash --system \
|
||||||
|
--home-dir "/usr/local/upfast" -m upfast
|
||||||
|
|
||||||
|
# Change to upfast user and go to upfast dir
|
||||||
|
su upfast
|
||||||
|
cd
|
||||||
|
|
||||||
|
# Clone the project directly into upfast-src directory
|
||||||
|
git clone https://code.cronyakatsuki.xyz/crony/upfast .
|
||||||
|
|
||||||
|
# Create the virtual environment and load it for user on default
|
||||||
|
python3 -m venv venv
|
||||||
|
# Activate the virtual environment
|
||||||
|
source venv/bin/activate
|
||||||
|
# Install all the requirements
|
||||||
|
pip install -r requirements.txt
|
||||||
|
|
||||||
|
# create the upload directory
|
||||||
|
mkdir upload
|
||||||
|
|
||||||
|
# UpFast go brrr
|
||||||
|
uvicorn main:app --host 127.0.0.1 --port 8000 --proxy-headers --forwarded-allow-ips='*'
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Running
|
#### Autostart with systemd
|
||||||
|
|
||||||
|
To autostart with systemd you will need to create a systemd .service file in path `/etc/systemd/system/upfast.service` and add this content to it.
|
||||||
|
|
||||||
|
```systemd
|
||||||
|
[Unit]
|
||||||
|
Description=UpFast service
|
||||||
|
Documentation=https://code.cronyakatsuki.xyz/crony/upfast
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=upfast
|
||||||
|
Group=upfast
|
||||||
|
WorkingDirectory=/usr/local/upfast/
|
||||||
|
ExecStart=/usr/local/upfast/venv/bin/uvicorn main:app --host 127.0.0.1 --port 8000 --proxy-headers --forwarded-allow-ips='*'
|
||||||
|
Restart=on-failure
|
||||||
|
```
|
||||||
|
Finally run following commmands.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
systemctl start upfast.service
|
# refresh services
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
# enable the service
|
||||||
|
sudo systemctl enable upfast.service
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Start on boot
|
|
||||||
```bash
|
|
||||||
systemctl enable upfast.service
|
|
||||||
```
|
|
||||||
### Docker
|
### Docker
|
||||||
|
|
||||||
In the repo there is an included dockerfile to generate an image from the latest version of everything, to generate an image just run `docker build . -t upfast` (You need root privileges or to be in the docker group).
|
In the repo there is an included dockerfile to generate an image from the latest version of everything, to generate an image just run `docker build . -t upfast` (You need root privileges or to be in the docker group).
|
||||||
@ -40,14 +77,24 @@ The sample command will need an upload directory, you can replace `./upload` wit
|
|||||||
### Nginx Proxy setup
|
### Nginx Proxy setup
|
||||||
|
|
||||||
This is an example nginx proxy config for http
|
This is an example nginx proxy config for http
|
||||||
```bash
|
|
||||||
cp ./upfast-nginx /etc/nginx/sites-available/upfast
|
|
||||||
ln -sf /etc/nginx/sites-available/upfast /etc/nginx/sites-enabled/
|
|
||||||
```
|
|
||||||
|
|
||||||
> Load config
|
```nginx
|
||||||
```bash
|
server {
|
||||||
systemctl reload nginx
|
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
|
||||||
|
server_name upfast.example.com ;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_pass http://127.0.0.1:8000;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
proxy_redirect off;
|
||||||
|
proxy_buffering off;
|
||||||
|
}
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
# Contributions
|
# Contributions
|
||||||
|
26
install.sh
26
install.sh
@ -1,26 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# quick install (and run) script for upfast using systemd
|
|
||||||
if [ $EUID -ne 0]
|
|
||||||
then
|
|
||||||
echo "Please run as root"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
useradd --shell /bin/sh --system --home-dir /usr/local/upfast upfast
|
|
||||||
mkdir -p /usr/local/upfast # dodge copying of skeletons
|
|
||||||
|
|
||||||
chown upfast:upfast /usr/local/upfast
|
|
||||||
chmod 700 /usr/local/upfast
|
|
||||||
|
|
||||||
su upfast -c'
|
|
||||||
cd
|
|
||||||
git clone https://code.cronyakatsuki.xyz/crony/upfast .
|
|
||||||
|
|
||||||
python3 -m venv env
|
|
||||||
. ./env/bin/activate
|
|
||||||
pip install -r requirements.txt
|
|
||||||
mkdir upload'
|
|
||||||
|
|
||||||
cp ./upfast.service /etc/systemd/system/upfast.service
|
|
||||||
systemctl daemon-reload
|
|
15
upfast-nginx
15
upfast-nginx
@ -1,15 +0,0 @@
|
|||||||
server {
|
|
||||||
listen 80;
|
|
||||||
listen [::]:80;
|
|
||||||
|
|
||||||
server_name upfast.example.com ;
|
|
||||||
|
|
||||||
location / {
|
|
||||||
proxy_pass http://127.0.0.1:8000;
|
|
||||||
proxy_set_header Host $host;
|
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
|
||||||
proxy_redirect off;
|
|
||||||
proxy_buffering off;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=UpFast service
|
|
||||||
Documentation=https://code.cronyakatsuki.xyz/crony/upfast
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
User=upfast
|
|
||||||
Group=upfast
|
|
||||||
WorkingDirectory=/usr/local/upfast/
|
|
||||||
ExecStart=/usr/local/upfast/env/bin/uvicorn main:app --host 127.0.0.1 --port 8000 --proxy-headers --forwarded-allow-ips='*'
|
|
||||||
Restart=on-failure
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
Loading…
Reference in New Issue
Block a user