本文最后更新于:2024年8月2日 晚上
项目概述
本项目基于Python Flask框架编写,数据库采用MariaDB,结构精简,代码无冗余,前端界面简约美观。
项目仓库:https://github.com/Godtokoo666/yourspace
快速开始(以debian系为例)
1.安装相关软件包
1
| sudo apt install -y python3 mariadb-server pkg-config libmariadb-dev git
|
配置MariaDB
初始化数据库
如果您有已建立好的MySQL/MariaDB数据库,请跳至配置数据库连接信息
执行MariaDB的安全脚本
1
| sudo mysql_secure_installation
|
这个脚本会引导你完成以下步骤:
1.设置 root 密码
2.移除匿名用户
3.禁止 root 远程登录
4.删除测试数据库
5.重新加载权限表
建立数据库
进入mysql
接下来输入密码或使用unix socket登录
创建数据库YourSpace
1
| CREATE DATABASE YourSpace;
|
创建YourSpace用户并赋予YS库权限(可选)
1 2 3
| CREATE USER 'yourspace'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON yourspace.* TO 'yourspace'@'localhost'; FLUSH PRIVILEGES;
|
2.下载源代码及Python依赖
下载源代码
1.可直接Download
2.也可使用git clone
1
| git clone https://github.com/Godtokoo666/yourspace
|
配置Python虚拟环境
1 2 3
| cd yourspace python3 -m venv venv source venv/bin/activate
|
下载Python依赖
1
| pip install -r requirements.txt
|
3.配置数据库连接信息
编辑config.yaml
在SQLALCHEMY_DATABASE_URI:后填入正确的信息
格式:
1
| SQLALCHEMY_DATABASE_URI: "mysql://username:password@localhost/yourspace"
|
4.启动程序
可直接启动run.py运行程序,但不建议,Flask内置的服务器仅推荐调试时使用
可使用WSGI Server gunicorn,requirement.txt已写入gunicorn,若无,请:
接下来创建gunicorn配置文件gunicorn_config.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| debug = False
bind = "127.0.0.1:5000"
workers = 2
worker_connections=500
timeout = 600
loglevel = 'info'
pidfile = "log/gunicorn.pid"
accesslog = "log/access.log"
errorlog = "log/error.log"
preload_app = True
|
启动gunicorn
1
| gunicorn -c gunicorn_config.py run:app
|
5.写入进程管理工具(以systemd为例)
在/etc/systemd/system下新建yourspace.service文件,并编辑
填入内容(/path/to/your/app需替换为正确的路径):
1 2 3 4 5 6 7 8 9 10 11
| [Unit] Description=Yourspace Main App After=network.target
[Service] WorkingDirectory=/path/to/your/app ExecStart=/path/to/your/app/venv/bin/gunicorn -c gunicorn_config.py run:app Restart=always
[Install] WantedBy=multi-user.target
|
启动和管理服务
1 2 3
| sudo systemctl daemon-reload sudo systemctl start yourspace sudo systemctl enable yourspace
|
6.部署至WEB服务器(以Nginx为例)
新建文件到/etc/nginx/site-enabled/yourspace
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| server{ listen 80; listen [::]:80; server_name yourserver_name; location / { return 301 https://$server_name$request_uri; } } server { listen 443 ssl; listen [::]:443 ssl; server_name yourserver_name; ssl_certificate /path/to/yourcert; ssl_certificate_key /path/to/yourkey; location / { proxy_pass http://localhost:5000; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; } location ~ ^/(ws|terminal/.+)$ { proxy_pass http://localhost:5000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $http_host; } }
|
之后重启nginx
DEMO
https://yourspace.funfs.com/
TO DO LIST