首页 > 其他分享 >Nas Docker 安装个人记账web项目:firefly_iii &beancount-gs

Nas Docker 安装个人记账web项目:firefly_iii &beancount-gs

时间:2023-05-21 16:45:17浏览次数:54  
标签:firefly web gs beancount env docker iii

Nas Docker 安装个人记账web项目:firefly_iii &beancount-gs

1.经过搜索以及GPT的询问,通过预览界面感觉firefly_iii

官方示例demo:https://demo.firefly-iii.org/

官方安装文档:https://docs.firefly-iii.org/firefly-iii/installation/docker/

本人采用的是群晖Nas docker安装:

这个因为是自己个人要用的,懒得装云服务器上了,后面内网穿透即可外部网络访问了

采用的docker compose

官方三个文档地址:

docker-compose文件

https://raw.githubusercontent.com/firefly-iii/docker/main/docker-compose.yml

.env文件(名字改为.env)

https://raw.githubusercontent.com/firefly-iii/firefly-iii/main/.env.example

database.env(名字改为.db.env)

https://raw.githubusercontent.com/firefly-iii/docker/main/database.env

本人的文件:

docker-compose文件

 version: '3'
 ​
 services:
  app:
    image: fireflyiii/core:latest
    restart: always
    volumes:
      - firefly_iii_upload:/var/www/html/storage/upload
    env_file: .env
    ports:
      - 80:8080
    depends_on:
      - db
  db:
    image: mariadb    
    hostname: fireflyiiidb
    restart: always
    environment:
      - MYSQL_RANDOM_ROOT_PASSWORD=yes
      - MYSQL_USER=firefly
      - MYSQL_PASSWORD=secret_firefly_password # 改成你自己的密码
      - MYSQL_DATABASE=firefly
    volumes:
      - firefly_iii_db:/var/lib/mysql
 volumes:
    firefly_iii_upload:
    firefly_iii_db:

.env的配置修改

 # Use "pgsql" for PostgreSQL
 # Use "mysql" for MySQL and MariaDB.
 # Use "sqlite" for SQLite.
 DB_CONNECTION=mysql
 DB_HOST=db
 DB_PORT=3306
 DB_DATABASE=firefly
 DB_USERNAME=firefly
 DB_PASSWORD=secret_firefly_password   # 改成你自己的密码,与上面保持一致

 

执行命令

 //没权限加sudo即可
 docker-compose -f docker-compose.yml up -d

 

总结:

1.这样写就不用.db.env了,在environment参数里面就写完了

2.修改.env的配置:默认是mysql 你只需要修改这个DB_PASSWORD 为上面的docker-compose.yml文件的密码一样即可,如果需要换成别的数据库,看官方的注释信息改成pgsql或者sqlite都行

3.正常情况下你访问你的 ip+80即可访问,注册第一个账号就是管理员,后面会关闭注册。

4.由于我是部署完之后写博客的,没有第一时间截图,你只需要跟着系统引导即可,选择好中文,后面就通了,可以看上面写的官方显示demo

遇到的问题

一般可以用docker安装的我都会本地笔记本先安装一遍,再去服务器上部署,这样免得在自己的服务器或者Nas一致出现问题。

结果表明,本地windows一切正常,一行命令即可。系统初始化数据库表之后,即可访问。

但是在Nas docker里面,他一直不能访问数据库,我尝试过很多种方法,我把数据库的端口暴露出来,然后手动创建了对应的数据库,但是不能连接

错误

错误如下:但是这个只是警告,翻译过来就是没验证然后被服务器断开了连接。我windows也有这个warning,但是这个正常访问。

官方也有对应的issue,但是是20年的,我也将对应的ip改为宿主机的ip以及权限等等。

 2023-05-20 1:12:30 3 [Warning] Aborted connection 3 to db: 'unconnected' user: 'unauthenticated' host: '172.22.0.4' (This connection closed normally without authentication)

 

 

解决方案:我是采用的postgresql,然后在Nas 里面正常运行

如果反代需要修改.env配置:

自己在.env里面搜索前面的字段

 TRUSTED_PROXIES=**
 ​
 APP_URL=http://localhost //改为你的域名

 

自己使用之后发现不适合我,有点复杂,但是可以用

---------------------------------------------------------------分割线

beancount-gs的安装

docker-compose.yml文件

 version: "3.9"
 services:
  app:
    container_name: beancount-gs
    image: xdbin/beancount-gs:latest
    ports:
      - "10000:80"
    # volumes 挂载目录会导 /app/public/icons 中的图标被覆盖,这里将默认图标在挂载后重新拷贝图标
    command: >
      sh -c "cp -rn /app/public/default_icons/* /app/public/icons && ./beancount-gs -p 80"
    volumes:
      - ./bak:/app/bak
      - ./config:/app/config
      - ./data:/data/beancount
      - ./icons:/app/public/icons

执行命令

 docker-compose up -d //没权限加sudo 即可
注意

1.如果自己的电脑或者服务器不支持创建对应的文件夹,记得手动创建bak、config、data、icons文件夹

2.端口不能改成别的,只能10000,我测试的时候,改成了10080,但是容器运行了,没有错误,但是没有出来初始化界面。换成10000又可以。所以注意不要修改。可能是bug,也可能是他监听的10000端口,不纠结了,能用就行。

使用地址与教程:

https://www.yuque.com/chuyi-ble7p/beancount-gs/mavcdw

初始化不知道的话,看地址:https://www.yuque.com/chuyi-ble7p/beancount-gs/eq81d8

初始化

 

密钥不是自己设置的密码:而是初始化系统生成的,看自己的docker 这个容器的日志,找到Secret token,这里填上这个即可

后续创建账本的密码是自己设置的,这个是需要第一次初始化填即可

 [Info] [2023-05-21 01:37:52] [System]: beancount-gs start at http://localhost:80 or http://172.20.0.2:80
 [Info] [2023-05-21 01:37:52] [System]: Secret token is xxiaOqxoF62zGkww
 [GIN-debug] Listening and serving HTTP on :80

账本存储位置:账本数据和配置的磁盘存储路径。(默认设置为 /data/beancount 即可)

注意:如果使用 docker 启动服务,这里设置的路径为 docker 容器中的账本存储路径。

例:

volumes:

- "​{dataPath:-/docker/beancount}"

以上配置中,即把物理机器的 /machine/beancount 目录映射为 docker 的 /docker/beancount 目录,这里的账本存储位置应该设置为 /docker/beancount。参考:issue21

账本开始日期:账户的默认开始时间。(默认设置为 1970-01-01 即可)

 

使用总结:

收入与支出的数量要一致

支出

 

收入

 

与支出差不多,不过由于是支付宝账号增加金额,所以这里填写正数。建议保存一个模板,下次只需要填写细节和金额即可

 

参考博客:

https://www.yuque.com/chuyi-ble7p/beancount-gs/mavcdw

https://blog.csdn.net/wbsu2004/article/details/124920383

https://blog.csdn.net/wbsu2004/article/details/122583477

 

 

 

 

 

 

 

 

 

 

标签:firefly,web,gs,beancount,env,docker,iii
From: https://www.cnblogs.com/firstsaofan/p/17418756.html

相关文章

  • 史上最全的WebSettings说明
    setAllowContentAccess(booleanallow) 是否允许在WebView中访问内容URL(ContentUrl),默认允许。内容Url访问允许WebView从安装在系统中的内容提供者载入内容。setAllowFileAccess(booleanallow) 是否允许访问文件,默认允许。注意,这里只是允许或禁止对文件系统的访问,Assets和re......
  • CF1774F Magician and Pigs【性质】
    有一个空序列,需要维护如下三个操作:1x:在序列中添加\(x\)。2x:把序列中每个元素的值减去\(x\)。3:重复从第一条到本条操作的前一条的所有操作,包括操作\(3\)。当一个数的值\(\leq0\)时,它将被移出序列。求最后有多少个数还在序列中。答案对\(998244353\)取模。\(n\leq......
  • 浅谈同余3(扩展中国剩余定理,扩展BSGS)
    距离上一篇已经四个月了,我来填坑了上一篇:$浅谈同余2(扩展欧几里得,中国剩余定理,BSGS)$(https://www.cnblogs.com/xyy-yyds/p/17418472.html)0x50扩展BSGS$O(\sqrtn)$【模板】扩展BSGS/exBSGS 题目背景题目来源:SPOJ3105Mod题目描述给定$a,p,b$,求满足$a^x≡b\pmodp......
  • web应用开发 -- 课堂作业 个人简介
    文章目录文件结构下载[https://api.hongbin.xyz:3002/downloadSource/code.zip](https://api.hongbin.xyz:3002/downloadSource/code.zip)代码文件结构下载https://api.hongbin.xyz:3002/downloadSource/code.zip代码jianjie.cssbody{min-height:140vh;}header{back......
  • Google Earth Engine(GEE)——全球建筑物数据集(MSBuildings数据集)包含微软7.77忆建筑物
    全球ML建筑脚印必应地图正在发布全球范围内的公开建筑脚印。我们从2014年至2021年的Bing地图图像中检测到777M的建筑,包括Maxar和Airbus的图像。为了完整起见,早期发布的数据集也包括在这个数据集中,并被纳入其中。你可以在这里找到Githubrepo和关于方法的更多信息。数据集是压缩的,......
  • 通过团队协作,搭建WEB软件产品
    需求分析用例图现实设计图代码构件图代码信息流物理部署图后端代码编写表结构设计范式:列的原子性范氏:列要保持和主键强关联范氏:列之间没有关联dto路径约定业务entity类编写Model代表现实世界的抽象Schema使用了某种方式呈现ModelEntity代......
  • webpack-安装和配置webpack
    在项目中安装webpack在终端运行如下的命令,安装webpack相关的两个包:[email protected]@4.7.2-D在项目中配置webpack在项目根目录中,创建名为webpack.config.js的webpack配置文件,并初始化如下的基本配置:module.exports={ mode:'development'//mode......
  • Exp8 Web安全
    1.实验内容(1)Web前端HTML能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。(2)Web前端javascipt理解JavaScript的基本功能,理解DOM。在(1)的基础上,编写JavaScript验证用户名、密码的规则。在用户点击登陆按钮后回显“欢迎+输入的用户名”尝......
  • 使用ShardingShpere来实现读写分离跟分库分表
    环境准备两个mysql集群,一主一从我们简单的用docker-compose来快速搭建一个version:'3'services:master1:image:mysql:5.7environment:MYSQL_ROOT_PASSWORD:123456ports:-"3307:3306"volumes:-./master1/data:/var/lib/mysql......
  • 整理:各个浏览器及web服务器对URL(get)长度的限制
     http1.1协议中对url的长度是不受限制的:TheHTTPprotocoldoesnotplaceanyapriorilimitonthelengthofaURI.ServersMUSTbeabletohandletheURIofanyresourcetheyserve,andSHOULDbeabletohandleURIsofunboundedlengthiftheyprovideGET-......