forked from crony/UpFast
Compare commits
No commits in common. "mine" and "main" have entirely different histories.
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,3 +1,3 @@
|
||||
__pycache__
|
||||
upload
|
||||
env
|
||||
venv
|
||||
|
83
README.md
83
README.md
@ -10,25 +10,58 @@ 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
|
||||
|
||||
#### Installing
|
||||
```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
|
||||
|
||||
# Load environment by default
|
||||
echo "source /usr/local/upfast/venv/bin/activate" > "/usr/local/upfast/.profile"
|
||||
|
||||
# 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
|
||||
```bash
|
||||
systemctl start upfast.service
|
||||
```
|
||||
#### Autostart with systemd
|
||||
|
||||
#### Start on boot
|
||||
```bash
|
||||
systemctl enable upfast.service
|
||||
```
|
||||
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.
|
||||
|
||||
#### Updating
|
||||
To update, you only need to pull the changes
|
||||
```bash
|
||||
su upfast -c 'cd && git pull --no-rebase'
|
||||
# refresh services
|
||||
sudo systemctl daemon-reload
|
||||
# enable the service
|
||||
sudo systemctl enable upfast.service
|
||||
```
|
||||
|
||||
### Docker
|
||||
@ -47,14 +80,24 @@ The sample command will need an upload directory, you can replace `./upload` wit
|
||||
### Nginx Proxy setup
|
||||
|
||||
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
|
||||
```bash
|
||||
systemctl reload nginx
|
||||
```nginx
|
||||
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;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
# Contributions
|
||||
|
39
install.sh
39
install.sh
@ -1,39 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# quick install (and run) script for upfast using systemd
|
||||
if [ "$(id -u)" -ne 0 ]
|
||||
then
|
||||
echo "Please run as root"
|
||||
exit 1
|
||||
fi
|
||||
SIZE="5G"
|
||||
|
||||
UFDIR=${1:=/srv/upfast}
|
||||
USER=${1:=upfast}
|
||||
useradd --shell /bin/sh --system --home-dir $UFDIR $UFUSER ||
|
||||
exit 1
|
||||
mkdir -p "$UFDIR" || # dodge copying of skeletons
|
||||
exit 1
|
||||
|
||||
chown "$UFUSER:$UFUSER" "$UFDIR"
|
||||
chmod 700 "$UFDIR"
|
||||
|
||||
su "$UFUSER" -c"
|
||||
cd
|
||||
git clone https://code.cronyakatsuki.xyz/tlast/upfast . ||
|
||||
exit 1
|
||||
|
||||
python3 -m venv env
|
||||
. ./env/bin/activate ||
|
||||
exit1
|
||||
pip install -r requirements.txt ||
|
||||
exit 1
|
||||
|
||||
fallocate -l $SIZE storage
|
||||
mkfs.ext4 storage
|
||||
mount storage upload
|
||||
rm -fd /storage/*" ||
|
||||
exit 1
|
||||
|
||||
cp ./upfast.service /etc/systemd/system/upfast.service
|
||||
systemctl daemon-reload
|
@ -5,7 +5,8 @@ html {
|
||||
body {
|
||||
max-width: 900px;
|
||||
margin: auto;
|
||||
background: #81a1c1;
|
||||
background: #303446;
|
||||
color: #c6d0f5;
|
||||
}
|
||||
|
||||
h1 {
|
||||
@ -15,7 +16,7 @@ h1 {
|
||||
|
||||
hr {
|
||||
margin: 40px;
|
||||
color: #2e3440;
|
||||
color: #626880;
|
||||
}
|
||||
|
||||
img {
|
||||
@ -33,9 +34,9 @@ video {
|
||||
}
|
||||
|
||||
a {
|
||||
color: #ebcb8b;
|
||||
color: #f2d5cf;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
font-style: bold;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
@ -44,7 +45,7 @@ a:hover {
|
||||
}
|
||||
|
||||
pre {
|
||||
background: #2e3440;
|
||||
background: #292c3c;
|
||||
font-size: 1am;
|
||||
padding: 10px;
|
||||
max-width: 800;
|
||||
@ -53,7 +54,6 @@ pre {
|
||||
overflow-x: scroll;
|
||||
border: none;
|
||||
border-radius: 1rem;
|
||||
color: #88c0d0;
|
||||
}
|
||||
|
||||
.file {
|
||||
|
@ -1,7 +1,8 @@
|
||||
body {
|
||||
max-width: 900px;
|
||||
margin: auto;
|
||||
background: #81a1c1;
|
||||
background: #303446;
|
||||
color: #c6d0f5;
|
||||
}
|
||||
|
||||
|
||||
@ -11,9 +12,9 @@ h1 {
|
||||
}
|
||||
|
||||
a {
|
||||
color: #ebcb8b;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
color: #f2d5cf;
|
||||
text-decoration: none;
|
||||
font-style: bold;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
@ -22,9 +23,8 @@ a:hover {
|
||||
}
|
||||
|
||||
code {
|
||||
background: #88c0d0;
|
||||
background: #414559;
|
||||
border-radius: 10px;
|
||||
font-size: 105%;
|
||||
font-style: italic;
|
||||
padding: 2px;
|
||||
}
|
||||
|
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