AllKeeper

简体中文 | English

基于Django3.2.7+Vue2+ElementUI的相对比较自动化生成的后台管理系统。借助SimpleUI开源项目对Django原生的Admin后台管理页面进行了二次开发和优化改进而生成的比较现代化的后台管理系统。

模块&功能

本项目总共有六大模块组成.其分别是:

主模块 大模块 子模块 功能 是否已实现
万能堡垒 设备管理 服务器管理
路由器管理 ☑️
服务管理 SSH服务
数据库管理
宝塔管理
ES管理
网段管理 ☑️
穿透管理 ☑️

2. 账号管理

3. icloud管理

4. 媒体库

5. 社工库

6. 资金管理

依赖

1. ffmpeg

为了实现icloud相关功能需要安装

🌱 运行项目命令

先在izbasar目录下新建一个secret.py文件

_DEBUG = False

SECRET_KEY = ''
ADMIN_PATH = ''
ADMIN_USERNAME = ""
ADMIN_PASSWORD = ""
JWT_SIGNATURE = SECRET_KEY
JWT_ISSUER = ""

ES_USERNAME = ""
ES_PASSWORD = ""
ES_URI = "https://127.0.0.1:9002"
ES_CA = "/usr/etc/http_ca.ctr"

SMTP_EMAIL = ""
SMTP_PASSWORD = ""

MEDIA_ROOT = "/home/media"

再执行以下命令来产生数据库文件

python manage.py makemigrations
python manage.py migrate

再执行以下命令来运行项目即可

# 直接console运行
python manange.py runserver 7000
# 后台运行
nohup python manange.py runserver 7000 > app.log 2>&1 & echo $! > app.pid

Nginx 配置实现媒体文件的缩略图功能

nginx 下载地址 http://nginx.org/en/download.html

编译参数:–with-http_image_filter_module

http{
    ...
    server{
        ...
        location /icloud-shortcut {
            video_thumb;
            image_filter resize 100 200;
            image_filter_jpeg_quality 80;
            alias /external/SADAM/icloud/photos;
            autoindex on;
        }
        location /icloud {
            alias /external/SADAM/icloud/photos;
            autoindex on;
        }
        ...
    }
    ...
}

配置系统服务并开启自启动

先创建allkeeper.service文件并复制allkeeper.service.sample的内容

cp allkeeper.service.sample allkeeper.service

再修改内容, 再移到系统服务单位存储目录

vi allkeeper.service
mv allkeeper.service /usr/lib/systemd/system/

加载新加入的服务单位

systemctl daemon-reload

启动服务

systemctl start allkeeper.service

开启开机自启动

systemctl enable allkeeper.service

开启数据库定时备份

1. 首先,创建一个备份脚本(例如:backup_mysql.bat(Windows)或backup_mysql.sh(Linux)),包含以下内容:

Windows脚本(backup_mysql.bat):

@echo off
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
For /f "tokens=1-2 delims=/:" %%a in ("%TIME%") do (set mytime=%%a%%b)
set mydatetime=%mydate%_%mytime%
set BackupFile=backup_directory\backup_%mydatetime%.sql
"mysql_install_directory\bin\mysqldump.exe" -u USERNAME -pPASSWORD DATABASE_NAME > %BackupFile%

Linux脚本(backup_mysql.sh):

#!/bin/sh
script_path="$(dirname "$(readlink -f "$0")")"
echo "当前脚本所在路径:$script_path"
backup_dir=${script_path}/backup_sql
mkdir -p $backup_dir
mysqldump -u all_keeper -p 1_nDb9tk0pwa all_keeper > ${backup_dir}/all-keeper_`date +%Y%m%d%H%M%S`.sql

将backup_directory替换为您想存储备份文件的目录

将mysql_install_directory替换为MySQL安装目录

使用真实的数据库用户名代替USERNAME

使用真实的数据库密码代替PASSWORD

使用要备份的数据库名称代替DATABASE_NAME

2. 为脚本设置可执行权限(仅在Linux上需要):

chmod +x backup_mysql.sh

3. 创建一个定时任务(Windows Task Scheduler或Linux的cron):

a) Windows定时任务:

打开任务计划程序 单击”创建基本任务”,然后设置触发器(例如:每天、每周等),并选择刚创建的备份脚本作为要执行的操作。

b) Linux的cron任务:

在终端中键入crontab -e以编辑cron配置 添加以下内容(根据实际情况修改):

0 2 * * * /path/to/backup_mysql.sh

这将在每天凌晨2点执行备份任务。请将/path/to替换为脚本的实际路径。

常见问题

问题一:下拉框选择列表获取失败

现在Windows上执行一下命令

python3 manage.py collectstatic

然后执行一下命令

scp -rC /Users/shadikesadamu/Projects/izbasar/django-admin/public root@192.168.1.100:/root/AllKeeper/

问题二:Sqlite版本异常1

异常:django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17).

解决方案:

  1. 首先检查确认现有版本:
    sqlite3 --version
    
  2. 其次安装正确版本的sqlite(如报错提示,必须大于等于3.9.0) 从SQLite官网下载最新版本的软件包
    wget https://www.sqlite.org/2022/sqlite-autoconf-3400000.tar.gz
    tar -xvzf sqlite-autoconf-3400000.tar.gz 
    cd sqlite-autoconf-3400000.tar.gz
    ./configure
    make && make install
    echo export LD_LIBRARY_PATH="/usr/local/lib">> ~/.bashrc
    

问题三:Sqlite3版本异常2

异常:django.db.utils.NotSupportedError: deterministic=True requires SQLite 3.8.3 or higher

升级了 sqlite 版本(因 django 怕改动太大就没有尝试卸载django重新安装的方法)。 如下,明明版本已经更新成最新了环境变量也加了,软链接指向也是最新了,可运行还是提醒版本过低。

可能是不支持新的版本,最终决定更换sqlite3 为pysqlite3 和 pysqlite3-binary

解决方案:

  1. 安装pysqlite3和pysqlite3-binary
    pip install pysqlite3
    pip install pysqlite3-binary
    
  2. 打开文件/usr/local/python3/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py,找到 from sqlite3 import dbapi2 as Database 注释它,添加代码
    #from sqlite3 import dbapi2 as Database  #注释它
    from pysqlite3 import dbapi2 as Database #新加这段代码
    

    感谢巨人

杰出贡献者

联系我们

友情链接