Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/UISSH/backend
https://github.com/UISSH/backend
Last synced: 4 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/UISSH/backend
- Owner: UISSH
- Created: 2022-07-30T08:21:58.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-10-09T11:07:44.000Z (about 1 year ago)
- Last Synced: 2024-08-01T20:47:57.747Z (3 months ago)
- Language: Python
- Size: 477 KB
- Stars: 151
- Watchers: 4
- Forks: 9
- Open Issues: 6
-
Metadata Files:
- Readme: README.MD
- Changelog: CHANGELOG.MD
Awesome Lists containing this project
- awesome - UISSH/backend - (Python)
README
# 介绍
本项目旨在摆脱繁琐的编译安装、命令行配置的运维工作,并尽最大的努力遵循 Linux 通用规范的一个可视化面板,提供一键安装、配置、管理、监控、备份、迁移等功能。
并追求面板与系统环境隔离,面板仅仅是一个管理工具,部署的环境以及服务运行也不依赖面板功能。做到面板停止后,您配置的环境与服务依然可以正常运行,使您的系统环境更加稳定、更加安全。
## 环境
![debian](https://img.shields.io/badge/OS-Debian%2011%20LTS-brightgreen.svg?style=flat-square&logo=debian)
![ubuntu](https://img.shields.io/badge/OS-Ubuntu%2022%20LTS-brightgreen.svg?style=flat-square&logo=ubuntu)
![UISSH](https://img.shields.io/badge/Python-3.9--3.11-brightgreen.svg?style=flat-square&logo=python)
![UISSH](https://img.shields.io/badge/Django-4.2-brightgreen.svg?style=flat-square&logo=django)
## CI
![django ci](https://github.com/UISSH/backend/actions/workflows/django.yml/badge.svg)
[![Debian 11 CI](https://github.com/UISSH/install-script/actions/workflows/debian_11.yml/badge.svg)](https://github.com/UISSH/install-script/actions/workflows/debian_11.yml)
[![Ubuntu 22.04 CI](https://github.com/UISSH/install-script/actions/workflows/ubuntu_22.04.yml/badge.svg)](https://github.com/UISSH/install-script/actions/workflows/ubuntu_22.04.yml)## 安装
可使用一键安装脚本快速部署,仅支持 Debian 11 与 Ubuntu 22.04。
- [安装脚本](https://github.com/UISSH/install-script)
## 运行
使用 systemd 管理
```bash
systemctl enable|disable|start|stop| ui-ssh
```用于开发目的,使用 gunicorn 运行,_某些情况会找不到静态文件(404)_。
```
systemctl stop ui-ssh
gunicorn UISSH.asgi:application -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8000
```## 目录结构
安装后本项目的目录
```bash
# 程序默认位置
/usr/local/uissh
# systemd
/lib/systemd/system/ui-ssh.service
```其余程序目录以及配置文件(MariaDB、PHP、Nginx)结构都保持默认位置。
## 规范标准
底层接口尽量调用开源工具提供的接口,目录结构以主流开源工具默认行为为准,不额外造轮子。
节约时间,拥抱美好生活。
## Linux
第一版基于 Debian 11 长期支持版本而开发并通过可用性测试,暂时不考虑支持其余发行版。
项目将在 Debian 11 生命周期进入最后两年对 Debian 11 仅仅提供安全更新不额外添加功能,并在 debian 12 长期支持版本上继续开发。
### Nginx
**配置文件**
配置文件都应该遵循映射实际配置文件的做法,
```bash
# 配置文件应该存放在
touch /etc/nginx/sites-available/[name].conf
# 生效
ln -s /etc/nginx/sites-available/[name].conf /etc/nginx/sites-enabled/[name].conf
```**API 格式**
原生格式传到前端编辑,然后再保存传回时验证格式有效,无效不保存,提示前端重新编辑。有效则保存并重载或重启对应服务
**SSl 证书**
目录结构遵循 certbot
```bash
# 仅获取证书
certbot certonly \
-n --nginx --agree-tos \
-m [email protected] \
-d "domain.com" \
--server "https://dv.acme-v02.api.pki.goog/directory" # 可选
# Certificate is saved at: /etc/letsencrypt/live/domain.com/fullchain.pem
# Key is saved at: /etc/letsencrypt/live/domain.com/privkey.pem
``````bash
# 注册第三方机构,如 Google 为例
certbot register \
--agree-tos \
--email "[email protected]" \
--no-eff-email \
--server "https://dv.acme-v02.api.pki.goog/directory" \
--eab-kid "f3acca************7e7d9" \
--eab-hmac-key "HBUay****************************************WPQ"
```**网站目录以及权限**
```bash
# 所有网站目录应该创建在 /var/www/[name folder] 下
# 权限应默认为 www-data
chown www-data.www-data -R /var/www/
```### Systemd
**配置文件**
部署应用都建议使用 systemd 来管理,遵循映射实际配置文件的做法
```bash
# 如实际配置文件存放在
touch /lib/systemd/system/[name].service# 应该创建系统软链接
ln -s /lib/systemd/system/[name].service /etc/systemd/system/[name].service
# 启用
systemctl enable [name].service
```