用python做一个密码箱小工具(已在本人github仓库可以看看)

注:因为本人经常记不住密码所以用python写了这个工具箱,并用pyinstaller这个第三方库打包成了exe文件。并附上exe下载地址和代码介绍与样式,本人能力有限希望勿喷。

下载地址:

https://github.com/suyihang15/password-manager/releases/download/v1.0.0/default.exe

项目地址

suyihang15/password-manager: python写的本地密码记录本

代码介绍:

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#导入第三方库
import os
import json
import tkinter as tk
from tkinter import ttk, messagebox
from cryptography.fernet import Fernet

# 密钥文件名
KEY_FILE = "secret.key"
# 密码数据文件名
DATA_FILE = "passwords.json"

# 加载密钥,不存在则生成
def load_key():
if not os.path.exists(KEY_FILE):
key = Fernet.generate_key()
with open(KEY_FILE, "wb") as f:
f.write(key)
with open(KEY_FILE, "rb") as f:
return f.read()

# 初始化加密器
key = load_key()
cipher = Fernet(key)

# 保存数据(加密)
def save_data(data):
json_data = json.dumps(data).encode()
encrypted_data = cipher.encrypt(json_data)
with open(DATA_FILE, "wb") as f:
f.write(encrypted_data)

# 加载数据(解密)
def load_data():
if not os.path.exists(DATA_FILE):
return []
with open(DATA_FILE, "rb") as f:
encrypted_data = f.read()
decrypted_data = cipher.decrypt(encrypted_data).decode()
return json.loads(decrypted_data)

# 主窗口
root = tk.Tk()
root.title("密码记录本")
root.geometry("600x400")

# 表格
columns = ("网站", "账号", "密码", "备注")
tree = ttk.Treeview(root, columns=columns, show="headings")
for col in columns:
tree.heading(col, text=col)
tree.pack(fill=tk.BOTH, expand=True, padx=10, pady=10)

# 刷新表格
def refresh_list():
for item in tree.get_children():
tree.delete(item)
data = load_data()
for item in data:
tree.insert("", tk.END, values=(item["site"], item["user"], item["pwd"], item["note"]))

# 添加密码窗口
def add_window():
win = tk.Toplevel(root)
win.title("添加密码")
win.geometry("400x250")

tk.Label(win, text="网站/应用:").grid(row=0, column=0, padx=10, pady=10)
site_entry = tk.Entry(win)
site_entry.grid(row=0, column=1, padx=10, pady=10)

tk.Label(win, text="账号:").grid(row=1, column=0, padx=10, pady=10)
user_entry = tk.Entry(win)
user_entry.grid(row=1, column=1, padx=10, pady=10)

tk.Label(win, text="密码:").grid(row=2, column=0, padx=10, pady=10)
pwd_entry = tk.Entry(win)
pwd_entry.grid(row=2, column=1, padx=10, pady=10)

tk.Label(win, text="备注:").grid(row=3, column=0, padx=10, pady=10)
note_entry = tk.Entry(win)
note_entry.grid(row=3, column=1, padx=10, pady=10)

def save_new():
site = site_entry.get()
user = user_entry.get()
pwd = pwd_entry.get()
note = note_entry.get()
if not site or not user or not pwd:
messagebox.showwarning("提示", "网站、账号、密码不能为空!")
return
data = load_data()
data.append({"site": site, "user": user, "pwd": pwd, "note": note})
save_data(data)
refresh_list()
win.destroy()
messagebox.showinfo("成功", "保存成功!")

tk.Button(win, text="保存", command=save_new).grid(row=4, column=0, columnspan=2, pady=10)

# 删除选中
def delete_selected():
selected = tree.selection()
if not selected:
messagebox.showwarning("提示", "请先选择一条记录!")
return
data = load_data()
idx = tree.index(selected[0])
del data[idx]
save_data(data)
refresh_list()
messagebox.showinfo("成功", "删除成功!")

# 按钮
frame = tk.Frame(root)
frame.pack(pady=5)
tk.Button(frame, text="添加", command=add_window).pack(side=tk.LEFT, padx=5)
tk.Button(frame, text="删除选中", command=delete_selected).pack(side=tk.LEFT, padx=5)

# 启动
refresh_list()
root.mainloop()

启动后就是上面那个样子

添加保存以后就会在改文件夹里生成

passwords.json(作用:密码箱)

secret.key(作用:钥匙)

不能随便删除,删了数据就没了

成功以后打开软件就会以这样的方式呈现。

我个人觉得是很直观的,当然你也可以拿着这些代码随便改,反正都有注释的

要直接用源码的话,需要你自己配置环境

1、python 3.11

2、安装第三方库pip install cryptography(我个人是喜欢pycharm或者vs code的这两个IDE的,当然你要用文本文档也行,反正代码也不多,就是格式容易错)安装第三方库时有可能网络超时,就自己配镜像源吧

3、如果改好了可以打包了,个人推荐pyinstaller

(1)安装库pip install pyinstaller和pip install cryptography记得要把这个环境一起打包进去,不然运行不了

(2)打包pyinstaller -F -w –hidden-import=cryptography 文件名字.py

之后就生成一些文件里面就有exe文件,就可以直接拿来用了

希望对你有帮助,如果可以希望点一个star。

什么是反向代理

我们知道,网站一般是通过公网ip加端口号的方式访问的,而且一般我们是用80端口,之后绑定域名解析,就可以通过域名访问了,但是,如果不是用80端口,那么,就要在域名后面加端口访问了。

但是,为什么我们基本我们过用域名加端口的方式访问呢,难道他们都是部署在不同服务器上的吗,同一个服务器可不可以搭建多个网站呢

先回答上面的问题,可以,这里我们就要用到反向代理了,我们在搭建时一定会用到不同的端口,我们可以用反向代理的方式给他转换为80端口,方便我们使用,以下是一串反向代理的配置文件及作用

nginx

server {
listen 80; # 监听 HTTP 80 端口
server_name example.com; # 你的域名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
location / {
proxy_pass http://127.0.0.1:8080; # 转发到本地服务端口

# 传递真实 IP 和域名(必须)
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

# 连接超时(Nginx 连后端)
proxy_connect_timeout 10s;
# 发送超时(Nginx → 后端)
proxy_send_timeout 30s;
# 读取超时(后端 → Nginx)
proxy_read_timeout 30s;

# 不缓存(常用)
proxy_buffering off;
proxy_cache off;

# 允许大文件上传(常用)
client_max_body_size 100M;
}

}  

每一行作用

  •  proxy_connect_timeout :连不上后端多久断开

  •  proxy_send_timeout :发数据给后端多久超时

  •  proxy_read_timeout :等后端响应多久超时

  •  client_max_body_size :允许上传大文件

  •  proxy_buffering off :避免卡顿,实时流更稳

这是一些基础配置,希望可以帮你了解。

什么是docker

很多项目的部署用docker更为方便,那么什么是docker

按我自己的理解来说docker就是一个容器

他可以把我们部署需要的环境全部打包好,然后当我们需要这个项目的时候就给他拆开使用。

很多人用做菜来比喻,你可以把他看作预制场,他把调料包(所需环境)全部整理好,拆开简答烹饪(拉取镜像)就可以吃了(使用了)

因为有的项目部署环境比较复杂,这样做可以大大降低部署的门槛,而且因为其是一个个隔离且独立的环境,所以不必担心环境冲突等因素影响其他的项目冲突。

但是我个人觉得docker部署完后的项目在处理时还有些残留不太能删的干净,也应该是本人技术不到位。

什么是公网IP与端口

公网IP是你服务器在互联网上的唯一地址

1、全世界只有一个(所以很多运营商不愿意给公网IP因为他是有限的)

2、别人靠它找到你的服务器(包括远程连接,服务器,打开网页)

3、其分为ipv4和ipv6,他们处于不同频段,v4是全球通用的,但是现在不太够了,一般现在能给的是v6,v6是只有支持该频端的电子设备才能访问,现在一般只有买云服务器才给公网ip,当然你搞得到v4的话确实厉害,但是上传多了可能会被pcdn警告,这点要注意,所以一般建议要玩公网ip可以买个云服务器。

那么通俗点说公网IP好比如你家小区的地址,是一个可以找到你地址的一串数字。

二、端口是什么?

端口是服务器上不同服务的门牌号
一台服务器可以跑很多东西但是它们不能挤在一个门里所以用不同端口区分。
通俗点来说端口就是你家每间房的门牌号

三、公网IP + 端口 = 完整访问地址

IP:端口 就是你访问任何服务的方式。

比如:

网站:ip地址(123.123.123.123):端口号(80)中间一般打: 

四、常用的端口(一般是默认的)

1、系统/远程/网络基础(0–1023 公认端口)

  • 20 FTP 数据端口

  • 21 FTP 控制端口

  • 22 SSH(安全远程登录)

  • 23 Telnet(明文远程,已淘汰)

  • 25 SMTP(邮件发送)

  • 53 DNS(域名解析)

  • 67 DHCP 服务器

  • 68 DHCP 客户端

  • 80 HTTP(网页默认)

  • 110 POP3(邮件接收)

  • 123 NTP(时间同步)

  • 143 IMAP(邮件接收)

  • 161 SNMP(设备监控)

  • 162 SNMP Trap

  • 443 HTTPS(加密网页)

  • 445 SMB(Windows 文件共享)

  • 514 Syslog(系统日志)

  • 993 IMAPS(加密 IMAP)

  • 995 POP3S(加密 POP3)

2、数据库端口

  • 1433 SQL Server

  • 1521 Oracle

  • 3306 MySQL / MariaDB

  • 5432 PostgreSQL

  • 6379 Redis

  • 27017 MongoDB

  • 9042 Cassandra

  • 5984 CouchDB

  • 389 LDAP

  • 636 LDAPS(加密)

3、Web 服务/反向代理/开发

  • 80 HTTP

  • 443 HTTPS

  • 8080 备用 HTTP(Tomcat、Jetty、测试)

  • 8443 备用 HTTPS

  • 8888 宝塔面板

  • 9000 PHP-FPM

  • 3000 Node.js 常用

  • 5000 Flask / 群晖 NAS

  • 8000 Django

  • 8081 Nginx 备用

  • 9090 Prometheus

  • 3000 Grafana

4、NAS / 下载 / 媒体服务

  • 5000 群晖 DSM

  • 5001 群晖 HTTPS

  • 32400 Plex

  • 8096 Jellyfin

  • 8989 Sonarr

  • 7878 Radarr

  • 9091 Transmission

  • 51413 qBittorrent

  • 6881–6889 BT 下载

  • 9091 Transmission Web

5、邮件端口

  • 25 SMTP

  • 465 SMTPS(加密)

  • 587 SMTP 子端口

  • 110 POP3

  • 143 IMAP

  • 993 IMAPS

  • 995 POP3S

6、监控/运维/日志

  • 9090 Prometheus

  • 3000 Grafana

  • 9100 Node Exporter

  • 9200 Elasticsearch

  • 5601 Kibana

  • 5044 Logstash

  • 199 SMUX

  • 61616 ActiveMQ

7、游戏常用端口

  • 22 SSH

  • 80/443 网页

  • 27015 Steam

  • 19132 Minecraft PE

  • 25565 Minecraft Java

  • 3724 魔兽世界

  • 6112 星际争霸

  • 27000–27050 游戏通用

8、VPN/网络隧道

  • 1194 OpenVPN

  • 1723 PPTP

  • 500 IKE

  • 4500 NAT-T

  • 1701 L2TP

9、远程桌面/管理

  • 3389 Windows RDP

  • 5900 VNC

  • 5901 VNC :1

  • 5800 VNC Web

10、文件传输/同步

  • 21 FTP

  • 22 SFTP / SCP

  • 873 Rsync

  • 445 SMB

  • 139 NetBIOS

11、消息队列/中间件

  • 5672 RabbitMQ

  • 1883 MQTT

  • 9092 Kafka

  • 61616 ActiveMQ

12、容器/云原生

  • 2375 Docker

  • 2376 Docker TLS

  • 6443 Kubernetes API

  • 10250 Kubelet

  • 9090 Prometheus

13、端口范围说明

  • 0–1023:系统保留端口(系统服务)

  • 1024–49151:注册端口(软件/服务)

  • 49152–65535:动态/私有端口(临时使用)

什么是服务器

按照我个人的理解就是一台永不关机的电脑,如果你自己有一台电脑,可以大部分时间不关机,也可以算作一台服务器

那么区别在哪里呢

1、我们知道一台电脑可以干的事情有很多,但是服务器可以干的事情就比较专业了,他们有的专门用于存储,有的专门用于网站的运行,你可以把电脑理解为一个什么都还行的学生,把服务器理解为一个偏科生,他一般就是用于专业干某件事情的大佬。

2、对于一般来说服务器一般运行的系统为linux系统或者他的发行版,由于其运行起来极低的占用与极强的自定义性,所以大部分服务器都会选择Linux系统

3、操控方式,一般来说对于服务器的控制一般都是原程控制的,因为一般不会给服务器专门连接一个显示屏,通过ssh连接远程下载命令,可以更加高效的执行操作者的命令。

按照本人的理解大致就是这些了,如果还有什么见解欢迎在评论区补充。

常见文件类型及作用

一、文档类(最常用)

  • .txt:纯文本,无格式

  • .doc / .docx:Word 文档

  • .xls / .xlsx:Excel 表格

  • .ppt / .pptx:PPT 演示

  • .pdf:通用文档,格式固定

  • .rtf:富文本,带简单格式

  • .odt / .ods / .odp:LibreOffice 文档

  • .md:Markdown 笔记

  • .epub:电子书

  • .mobi / .azw3:Kindle 电子书

  • .chm:Windows 帮助文档

  • .wps:WPS 文档

  • .dot / .dotx:Word 模板

  • .xlt / .xltx:Excel 模板

  • .pot / .potx:PPT 模板

  • .pages:Mac 文档

  • .numbers:Mac 表格

  • .key:Mac 演示

二、图片类

  • .jpg / .jpeg:照片

  • .png:透明图

  • .gif:动图

  • .bmp:无压缩位图

  • .webp:网页图片

  • .svg:矢量图

  • .ico:图标

  • .heic / .heif:iPhone 照片

  • .tiff / .tif:印刷高清图

  • .psd:PS 源文件

  • .ai:Illustrator 矢量

  • .cdr:CorelDRAW

  • .raw:相机原始照片

  • .exr:专业 HDR 图

  • .jfif:JPEG 变种

  • .dds:游戏贴图

  • .tga:游戏/设计图

  • .pic:老图片格式

三、音频类

  • .mp3:通用音乐

  • .wav:无压缩音频

  • .flac:无损音乐

  • .aac:手机/视频音频

  • .m4a:苹果音频

  • .ogg:开源音频

  • .wma:Windows 音频

  • .amr:手机录音

  • .mid / .midi:电子音乐

  • .mp2:老音频

  • .ac3:DVD 音轨

  • .dts:高清音轨

  • .opus:高质量低体积音频

  • .mka:Matroska 音频

  • .caf:Mac 音频

  • .au:Unix 音频

  • .snd:老音频

四、视频类

  • .mp4:通用视频

  • .mkv:高清多音轨

  • .mov:苹果视频

  • .avi:老视频

  • .wmv:Windows 视频

  • .flv:Flash 视频

  • .webm:网页视频

  • .mpeg / .mpg:MPEG 视频

  • .rm / .rmvb:Real 视频

  • .3gp:手机老视频

  • .m4v:苹果视频

  • .ts / .mts:高清摄像

  • .vob:DVD 视频

  • .m2ts:蓝光视频

  • .f4v:Flash 高清

  • .asf:Windows 媒体

  • .m3u8:在线视频流

  • .dat:VCD 视频

  • .dv:摄像机视频

  • .ogv:开源视频

五、压缩/归档类

  • .zip:通用压缩

  • .rar:高压缩

  • .7z:最强压缩

  • .tar:Linux 归档

  • .tar.gz / .tgz:Linux 压缩

  • .tar.bz2:高压缩

  • .tar.xz:超高压

  • .gz:Gzip 压缩

  • .bz2:Bzip2 压缩

  • .xz:XZ 压缩

  • .z:老压缩

  • .iso:光盘镜像

  • .img:磁盘镜像

  • .nrg:Nero 镜像

  • .dmg:Mac 镜像

  • .cso:PSP 镜像

  • .isz:压缩 ISO

  • .arj:老压缩

  • .lzh:老压缩

  • .cab:Windows 压缩包

  • .wim:Windows 镜像

  • .squashfs:Linux 镜像

六、程序/安装包(电脑+手机)

  • .exe:Windows 程序

  • .msi:Windows 安装

  • .bat / .cmd:Windows 脚本

  • .dll:系统库

  • .sys:驱动

  • .drv:驱动

  • .ocx:控件

  • .cpl:控制面板

  • .app:Mac 程序

  • .pkg:Mac 安装

  • .deb:Debian 包

  • .rpm:RedHat 包

  • .sh:Linux 脚本

  • .bin:二进制

  • .run:Linux 安装

  • .apk:安卓

  • .xapk / .apkm:安卓分包

  • .apks:安卓捆绑

  • .aab:安卓发布

  • .ipa:苹果

  • .pxl / .deb:越狱苹果

  • .jar:Java

  • .jad:Java 描述

  • .swf:Flash

  • .crx:Chrome 插件

  • .xpi:Firefox 插件

七、代码/配置/数据

  • .py:Python

  • .js:JavaScript

  • .html / .htm:网页

  • .css:样式

  • .java:Java

  • .c / .cpp / .cxx:C/C++

  • .h / .hpp:头文件

  • .php:PHP

  • .go:Go

  • .rs:Rust

  • .rb:Ruby

  • .pl:Perl

  • .lua:Lua

  • .swift:Swift

  • .kt:Kotlin

  • .json:数据

  • .xml:数据

  • .yaml / .yml:配置

  • .toml:配置

  • .ini:配置

  • .conf:配置

  • .cfg:配置

  • .env:环境变量

  • .log:日志

  • .csv:表格

  • .tsv:制表符表格

  • .sql:数据库

  • .db / .sqlite / .sqlite3:数据库

  • .mdb / .accdb:Access

  • .bak:备份

  • .dat:数据

  • .bin:二进制数据

  • .rc:资源文件

  • .plist:Mac 配置

  • .properties:Java 配置

  • .htaccess:Apache 配置

八、字体类

  • .ttf:TrueType

  • .otf:OpenType

  • .woff / .woff2:网页字体

  • .eot:老网页字体

  • .fon:Windows 字体

  • .ttc:字体集

九、虚拟机/容器/镜像

  • .vmdk:VMware

  • .vdi:VirtualBox

  • .qcow2:KVM

  • .vhd / .vhdx:Hyper-V

  • .ova:虚拟机导出

  • .ovf:虚拟机配置

  • .hdd:Parallels

  • .img:树莓派镜像

  • .iso:系统镜像

  • .tar:Docker 镜像

十、系统/驱动/固件

  • .rom:固件

  • .bin:固件

  • .img:固件

  • .elf:Linux 可执行

  • .so:Linux 库

  • .dylib:Mac 库

  • .efi:UEFI 启动

  • .scpt:Mac 脚本

  • .applescript:AppleScript

十一、加密/证书/安全

  • .pem:证书

  • .crt / .cer:证书

  • .key:私钥

  • .pfx / .p12:证书包

  • .asc:GPG 签名

  • .gpg:加密文件

  • .zipx:高级加密压缩

  • .rar5:新版 RAR

十二、手机特有

  • .nomedia:安卓隐藏媒体

  • .inprogress:下载中

  • .crdownload:Chrome 未完成

  • .part:未完成下载

  • .uc:UC 浏览器缓存

  • .qlv:腾讯视频缓存

  • .kux:优酷缓存

  • .m3u:播放列表

  • .pls:播放列表

  • .xspf:播放列表

十三、临时/缓存/垃圾

  • .tmp:临时

  • .cache:缓存

  • .swp / .swo:Vim 缓存

  • .DS_Store:Mac 垃圾

  • .Thumbs.db:Windows 缩略图

  • .localized:Mac 本地化

  • .idb:缓存索引

十四、专业/游戏/设计

  • .blend:Blender

  • .max:3ds Max

  • .ma / .mb:Maya

  • .c4d:CINEMA 4D

  • .fbx:3D 模型

  • .obj:3D 模型

  • .stl:3D 打印

  • .sldprt / .sldasm:SolidWorks

  • .dwg / .dxf:CAD

  • .skp:SketchUp

  • .unitypackage:Unity 资源

  • .pak:游戏资源

  • .uasset:UE 资源

  • .vtt / .srt / .ass / .ssa:字幕

  • .sub / .idx:DVD 字幕

罪恶都市作弊码(仅供参考)

一、武器与生存类

  • THUGSTOOLS:初级武器套装(棒球棍、手枪、砍刀、燃烧瓶等)

  • PROFESSIONALTOOLS:中级武器套装(左轮手枪、霰弹枪、冲锋枪、狙击枪等)

  • NUTTERTOOLS:重型武器套装(电锯、加特林机枪、火箭筒、遥控炸弹等)

  • ASPIRINE:恢复全部生命值

  • PRECIOUSPROTECTION:获得满额护甲

  • ICANTTAKEITANYMORE:角色自杀

二、通缉等级类

  • LEAVEMEALONE:消除所有通缉警星

  • YOUWONTTAKEMEALIVE:增加2颗通缉警星

三、载具生成类

  • PANZER:召唤坦克

  • GETTHEREFAST:召唤高速跑车(Sabre Turbo)

  • BETTERTHANWALKING:召唤高尔夫球车

  • RUBBISHCAR:召唤垃圾车

  • THELASTRIDE:召唤灵车

  • ROCKANDROLLCAR:召唤豪华轿车

四、载具功能类

  • SEAWAYS:汽车可在水面行驶(摩托车、直升机除外)

  • COMEFLYWITHME:汽车高速行驶时可飞行

  • BIGBANG:炸毁附近所有车辆

  • GREENLIGHT:所有交通信号灯变为绿灯

  • MIAMITRAFFIC:路上车辆增多且行驶混乱

  • AHAIRDRESSERSCAR:当前驾驶车辆变为粉色

  • IWANTITPAINTEDBLACK:当前驾驶车辆变为黑色

五、游戏节奏类

  • ONSPEED:加快游戏整体速度

  • BOOOOOORING:减慢游戏整体速度

六、天气效果类

  • APLEASANTDAY:切换为晴天

  • ALOVELYDAY:切换为晴朗好天气

  • ABITDRIEG:切换为阴天

  • CATSANDDOGS:切换为雨天

  • CANTSEEATHING:切换为雾天

七、人物与趣味类

  • STILLLIKEDRESSINGUP:随机更换角色皮肤

  • FANNYMAGNET:吸引周围女性角色跟随

  • DEEPFRIEDMARSBARS:角色体型变胖

  • PROGRAMMER:角色体型变瘦

  • FIGHTFIGHTFIGHT:路人互相攻击

  • NOBODYLIKESME:路人攻击玩家

  • OURGODGIVENRIGHTTOBEARARMS:路人持有武器

浏览器装插件

注 插件可以帮你在浏览网页时事半功倍,可玩性很高

1、准备条件

edge和火狐浏览器

其他有的浏览器也可以装但是一般这两个比较方便

2、安装插件

点击浏览器上三个点点击扩展获取扩展

就会进入对应的商城用于安装插件

在这里就可以安装插件了

这里推荐几个本人常用的插件

沉浸式翻译(用于翻译软件)

篡改猴(在油叉里下载脚本文件,用于执行一些命令)

大学搜题酱(用于刷网课,当然做题有限制,但是可以用篡改猴安装脚本刷课,但是不太好找了)

万能复制(用于突破一些网上复制文字都要钱的限制)

广告拦截器(可以有效的拦截网络上的网页广告)

IDM下载器(这个插件可以帮你快速的下载网络上的文件,比浏览器上的下载器快很多)

3、总结

其插件有很多目的都是帮你高效办公,根据自己的需要来选择就行。

私人书库搭建(komga)docker部署

注:此项目一般用于nas服务器搭建自己的图书管理系统,本人用过还不错,不建议部署在自己的主力机上,而且图书要自己导入。

1、前期准备

docker下载

方式一:使用 docker-compose(推荐)

  1. 拉取镜像

docker pull gotson/komga:latest 

2、创建本地目录

mkdir -p config books
chmod 777 -R config books

3、填入这个compose

version: “3.8”

services:
komga:
image: gotson/komga:latest
container_name: komga
restart: unless-stopped
ports:
- “25600:25600”#这里的端口可以根据自己的需求更改,如果不懂就默认就行
volumes:
- ./komga/config:/config
- ./komga/data:/data
- /你宿主机的漫画目录:/books # 把这里改成你放漫画的路径,一般图书就放这个文件夹就行
environment:
- TZ=Asia/Shanghai
- PUID=1000
- PGID=1000

方式二:不用 docker-compose(单命令)

  1. 拉取镜像

docker pull gotson/komga:latest 

  1. 创建目录

mkdir -p config books
chmod 777 -R config books

  1. 一键启动

docker run -d \
--name komga \
--restart unless-stopped \
-p 25600:25600 \
-v $(pwd)/config:/config \
-v $(pwd)/books:/books \
-e TZ=Asia/Shanghai \
gotson/komga:latest

3、启动命令

docker-compose up -d

4、访问

部署的IP地址:25600(如有更改自行调整)

第一次登录会让你设置好账号和密码,后面根着来就行,记住导入图书后要扫描一下

这里添加对应的库以后才能看见哦,个人觉得还是很美观的。