Skip to content

onehomelab/DotMachine

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DotMachine

DotMachine是一个轻量级实例管理工具,支持多用户、多容器管理,具有Web界面,支持域名绑定和网站托管功能。

特性

  • 轻量级实例管理
    • CPU: 30mCPU
    • 内存: 51.2MB
    • 硬盘: 3GB
  • Web管理界面
    • 容器状态监控(HTTP轮询)
    • 开关机/重启
    • 密码重置
    • 系统重置
  • 网站托管
    • 支持多域名绑定
    • PHP支持
    • Python支持
    • 文件管理(FTP/SFTP)
  • 数据持久化
    • 网站文件持久化
    • 系统重置保留数据
    • 容器迁移数据同步

安装

  1. 安装依赖
# Ubuntu/Debian
apt-get update
apt-get install -y python3 python3-pip docker.io nginx

# CentOS/RHEL
yum install -y python3 python3-pip docker nginx
  1. 克隆仓库
git clone https://github.com/IsCycleBai/DotMachine.git
cd DotMachine
  1. 安装Python依赖
pip3 install -r requirements.txt
  1. 配置主机环境
sudo chmod +x setup-host.sh
sudo ./setup-host.sh
  1. 配置OAuth认证
# 编辑webui.py,修改OAuth配置
CLIENT_ID = "your_client_id"
CLIENT_SECRET = "your_client_secret"
REDIRECT_URI = "http://your_domain/oauth2/callback"
AUTH_BASE_URL = "https://linux.do/oauth2/authorize"
TOKEN_URL = "https://linux.do/oauth2/token"
USER_INFO_URL = "https://linux.do/api/user"
  1. 构建基础镜像
sudo python3 dotmachine.py build base

环境要求

  • Python 3.6+
  • Docker
  • Nginx
  • 公网IP(用于域名解析)
  • OAuth2认证服务器

配置说明

  1. 主机配置
# nginx-proxy.conf - 主机Nginx配置
server {
    listen 80;
    server_name _;
    include /etc/nginx/vhost.d/*.conf;
}
  1. 容器配置
# 容器资源限制
CPU: 30mCPU (0.03核)
内存: 51.2MB
硬盘: 3GB

# 端口映射
SSH: 41xx
FTP: 42xx
HTTP: 40xx
  1. 网站配置
# 自动生成的网站配置
server {
    listen 80;
    server_name your-domain.com;
    root /data/www/your-domain.com;
    index index.html index.php;
    
    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        include snippets/fastcgi-php.conf;
    }
}

使用方法

  1. 启动Web界面
python3 webui.py
  1. 访问管理界面
http://localhost:8181
  1. 创建实例
  • 选择实例类型(基础版/PHP版/Python版)
  • 系统自动分配端口和账号密码
  • 通过SSH/FTP访问实例
  1. 添加网站
  • 在Web界面添加网站域名
  • 将域名解析到服务器IP
  • 通过FTP上传网站文件到 /data/www/你的域名/
  • 解析生效后即可通过域名访问

目录结构

/data/
  └── containers/
      └── {container_id}/
          └── www/
              └── {domain}/
                  └── index.html

端口说明

  • SSH: 41xx (xx为容器ID,如4101)
  • FTP: 42xx
  • HTTP: 40xx

注意事项

  1. 域名解析
  • 添加网站后需要将域名解析到服务器IP
  • 支持多级域名(如blog.example.com)
  • 解析生效需要一定时间
  1. 数据安全
  • 重要数据请及时备份
  • 系统重置会保留网站数据
  • 删除实例会永久删除数据
  1. 资源限制
  • CPU限制为30mCPU
  • 内存限制为51.2MB
  • 硬盘限制为3GB

技术栈

  • 后端:Python, Flask
  • 容器:Docker
  • Web服务器:Nginx
  • 数据库:JSON文件存储
  • 认证:OAuth2

许可证

MIT License

更新日志

2024-01-09

  • 移除WebSocket依赖,改用HTTP轮询方式获取容器状态
  • 修复密码重置功能
  • 优化容器管理相关的错误处理

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 45.1%
  • HTML 43.3%
  • JavaScript 3.9%
  • CSS 3.7%
  • Shell 2.6%
  • Dockerfile 1.0%
  • PHP 0.4%