群晖Docker部署私人记账平台EzbookKeeping(胎教级)

博主在前几年有记账的习惯,但是也仅仅只是在手机上记账,用的软件叫做“鲨鱼记账”。在停滞记账1年后,博主决定重新记账,因为去年新购置了群晖Nas,遂产生搭建私人记账平台的想法,便查到EzbookKeeping这个私人记账项目。

一、简介

ezBookkeeping 是一款轻量级、自托管的个人财务应用,拥有简洁易用的界面和强大的记账功能。它以简洁易用和可移植性为设计理念,易于部署、易于使用,并且占用的系统资源极少,非常适合微服务器、NAS 设备,甚至 Raspberry Pi。

该应用程序完全跨平台且设备友好——您可以在移动设备、平板电脑和桌面设备上无缝使用它。由于支持 PWA(渐进式 Web 应用程序),您甚至可以将其添加到移动主屏幕,并像原生应用程序一样使用它。

现场演示:https://ezbookkeeping-demo.mayswind.net

Web效果:

Mobile效果:

二、安装教程

在你想安装ezbookkeeping的地方新建文件夹ezbookkeeping,在其下分别新建文件夹data、log、storage三个文件夹。

右键ezbookkeeping文件夹点击属性-权限-新增,用户或组选择Everyone,并在下方勾选读取和写入,点击完成后,勾选应用到这个文件夹、子文件夹及文件选项,并保存。

打开群晖的Container Manager,点击项目-新增,项目名称:ezbookkeeping,路径选择刚刚我们新建的ezbookkeeping文件夹,来源选择创建docker-compose.yml选项,并将下方内容复制到设置中。

version: "3"

services:
  ezbookkeeping:
    image: mayswind/ezbookkeeping
    container_name: ezbookkeeping
    restart: unless-stopped
    ports:
      - 8422:8080
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./storage:/ezbookkeeping/storage
      - ./log:/ezbookkeeping/log
    environment:
      - EBK_DATABASE_TYPE=mysql
      - EBK_DATABASE_HOST=mysql:3306
      - EBK_DATABASE_NAME=ezbookkeeping
      - EBK_DATABASE_USER=ezbookkeeping
      - EBK_DATABASE_PASSWD=ezbookkeeping
      - EBK_LOG_MODE=file
      - EBK_SECURITY_SECRET_KEY="这里填你想要的密钥"
      # 注意:为false的话是禁止用户注册,按需选择,建议在鼓捣完后关闭注册。
      #- EBK_USER_ENABLE_REGISTER=false
      # 注意:这里填的是你的访问域名,可有可无,内网和ip访问可不填。
      #- EBK_SERVER_DOMAIN=blog.zhumengmeng.work 
      # 注意:这里填的是你外网访问目录,外网访问可能会出现图片资源等无法访问,点击发现采用了locahost,添加此变量可修复问题。
      #- EBK_SERVER_ROOT_URL=https://blog.zhumengmeng.work:7788 

  mysql:  
    image: mysql:8.0 
    container_name: ezbookkeeping-mysql
    restart: unless-stopped
    volumes:  
        - ./data:/var/lib/mysql
    environment:  
        - MYSQL_DATABASE=ezbookkeeping  
        - MYSQL_USER=ezbookkeeping  
        - MYSQL_PASSWORD=ezbookkeeping  
        - MYSQL_ROOT_PASSWORD=ezbookkeeping
    healthcheck:  
        test: ["CMD", "mysqladmin", "ping", "-p ezbookkeeping"]  
        retries: 3  
        timeout: 5s

填写完毕后,无脑下一步,等待部署完成。

如果不出意外的话,项目跑不起来,观察日志发现ezbookkeeping无法与mysql连接。

点击ezbookkeeping容器,点击设置,拉到最下方链接,将ezbookkeeping与ezbookkeeping-mysql链接在一起。点击保存后重新运行项目即可。

最后在浏览器中输入就能看到登录界http://群晖IP:8422