Compare commits
1 Commits
main
...
prod-serve
Author | SHA1 | Date |
---|---|---|
|
55c28ee8dc | 2 years ago |
@ -1,15 +1,15 @@ |
||||
### Steps to Deploy |
||||
- move contents of frontend/ to /srv/www-csc-links/ |
||||
- create a `.env` file in backend/ with following contents: |
||||
- move contents of static/ to /srv/www-csc-links/ |
||||
- create a `.env` file in server/ with following contents: |
||||
``` |
||||
PASSWORD=... |
||||
PORT=... |
||||
``` |
||||
- run the following in backend/: |
||||
- Install the pip dependencies. One possible way to do so is to run the following in server/: |
||||
``` |
||||
python3 -m venv venv |
||||
source venv/bin/activate |
||||
pip install -r requirements.txt |
||||
``` |
||||
- run python app in backend/ (with the virtual env activated) |
||||
- run server.py in server/ (with the pip dependencies installed) |
||||
- edit the `.htaccess` file in /srv/www-csc-links/ to point to the running python application |
||||
|
@ -0,0 +1,13 @@ |
||||
from waitress import serve |
||||
from main import app, DB_PATH, regen_html, out_path |
||||
from setup_db import migrate_0 |
||||
import os |
||||
|
||||
if not os.path.exists(DB_PATH): |
||||
migrate_0() |
||||
|
||||
with app.app_context(): |
||||
regen_html(out_path) |
||||
|
||||
port = int(os.environ.get("PORT") or 3000) |
||||
serve(app, host='0.0.0.0', port=port) |
@ -1,36 +1,40 @@ |
||||
import sqlite3 |
||||
import os |
||||
|
||||
DB_PATH = os.path.join(os.path.dirname(__file__), 'links.db') |
||||
def migrate_0(): |
||||
DB_PATH = os.path.join(os.path.dirname(__file__), 'links.db') |
||||
|
||||
con = sqlite3.connect(DB_PATH) |
||||
con = sqlite3.connect(DB_PATH) |
||||
|
||||
# array of links to store |
||||
links = [ |
||||
('http://csclub.uwaterloo.ca/','CS Club Website',0,0,1), |
||||
('https://www.instagram.com/uwcsclub/','Instagram',0,1,1), |
||||
('https://www.facebook.com/uw.computerscienceclub','Facebook',0,2,1), |
||||
('http://twitch.tv/uwcsclub','Twitch',0,3,1), |
||||
('http://bit.ly/uwcsclub-yt','YouTube',0,4,1), |
||||
] |
||||
# array of links to store |
||||
links = [ |
||||
('http://csclub.uwaterloo.ca/','CS Club Website',0,0,1), |
||||
('https://www.instagram.com/uwcsclub/','Instagram',0,1,1), |
||||
('https://www.facebook.com/uw.computerscienceclub','Facebook',0,2,1), |
||||
('http://twitch.tv/uwcsclub','Twitch',0,3,1), |
||||
('http://bit.ly/uwcsclub-yt','YouTube',0,4,1), |
||||
] |
||||
|
||||
# SQLite setup |
||||
cur = con.cursor() |
||||
# SQLite setup |
||||
cur = con.cursor() |
||||
|
||||
# test if table already exists |
||||
cur.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='links'") |
||||
if cur.fetchone(): |
||||
raise Exception('Links table already exists.') |
||||
else: |
||||
cur.execute('''CREATE TABLE links ( |
||||
url text NOT NULL, |
||||
name text NOT NULL, |
||||
clicks int NOT NULL, |
||||
position int NOT NULL UNIQUE, |
||||
active int NOT NULL, |
||||
UNIQUE(url, name) |
||||
)''') |
||||
cur.executemany('INSERT INTO links VALUES (?,?,?,?,?)', links) |
||||
con.commit() |
||||
# test if table already exists |
||||
cur.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='links'") |
||||
if cur.fetchone(): |
||||
raise Exception('Links table already exists.') |
||||
else: |
||||
cur.execute('''CREATE TABLE links ( |
||||
url text NOT NULL, |
||||
name text NOT NULL, |
||||
clicks int NOT NULL, |
||||
position int NOT NULL UNIQUE, |
||||
active int NOT NULL, |
||||
UNIQUE(url, name) |
||||
)''') |
||||
cur.executemany('INSERT INTO links VALUES (?,?,?,?,?)', links) |
||||
con.commit() |
||||
|
||||
con.close() |
||||
con.close() |
||||
|
||||
if __name__ == "__main__": |
||||
migrate_0() |
||||
|
Loading…
Reference in new issue