├── .gitignore ├── api.env ├── notes.txt ├── struct.png ├── structure.docx ├── api-no-mysql.env ├── docker-compose.yml ├── docker-compose-all-ali.yml ├── docker-compose-all-no-mysql-ali.yml ├── docker-compose-ali-no-mysql.yml ├── .gitattributes ├── docker-compose-ali.yml └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .idea -------------------------------------------------------------------------------- /api.env: -------------------------------------------------------------------------------- 1 | DB_PASSWORD=78p7gkc1 2 | invite_code=111111 -------------------------------------------------------------------------------- /notes.txt: -------------------------------------------------------------------------------- 1 | 78p7gkc1 2 | ALTER USER 'root'@'%' IDENTIFIED BY '111111';FLUSH PRIVILEGES; -------------------------------------------------------------------------------- /struct.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getmoneynote/docker-compose-moneynote-ali/HEAD/struct.png -------------------------------------------------------------------------------- /structure.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getmoneynote/docker-compose-moneynote-ali/HEAD/structure.docx -------------------------------------------------------------------------------- /api-no-mysql.env: -------------------------------------------------------------------------------- 1 | DB_HOST=host.docker.internal 2 | DB_PORT=3306 3 | DB_NAME=moneynote 4 | DB_USER=root 5 | DB_PASSWORD=78p7gkc1 6 | invite_code=111111 -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | moneynote: 5 | container_name: moneynote 6 | image: registry.cn-hangzhou.aliyuncs.com/moneynote/moneynote-all:latest 7 | restart: always 8 | environment: 9 | - DB_PASSWORD=${DB_PASSWORD:-78p7gkc1} 10 | - invite_code=${invite_code:-111111} 11 | volumes: 12 | - moneynote_mysql_data:/var/lib/mysql 13 | ports: 14 | - "43740:3306" 15 | - "43741:80" 16 | - "43742:9092" 17 | - "43743:81" 18 | - "43744:82" 19 | 20 | volumes: 21 | moneynote_mysql_data: -------------------------------------------------------------------------------- /docker-compose-all-ali.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | moneynote: 5 | container_name: moneynote 6 | image: registry.cn-hangzhou.aliyuncs.com/moneynote/moneynote-all:latest 7 | restart: always 8 | environment: 9 | - DB_PASSWORD=${DB_PASSWORD:-78p7gkc1} 10 | - invite_code=${invite_code:-111111} 11 | volumes: 12 | - moneynote_mysql_data:/var/lib/mysql 13 | ports: 14 | - "43740:3306" 15 | - "43741:80" 16 | - "43742:9092" 17 | - "43743:81" 18 | - "43744:82" 19 | 20 | volumes: 21 | moneynote_mysql_data: -------------------------------------------------------------------------------- /docker-compose-all-no-mysql-ali.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | moneynote: 5 | container_name: moneynote 6 | image: registry.cn-hangzhou.aliyuncs.com/moneynote/moneynote-all-no-mysql:latest 7 | restart: always 8 | extra_hosts: 9 | - "host.docker.internal:host-gateway" 10 | environment: 11 | - DB_HOST=${DB_HOST:-host.docker.internal} 12 | - DB_PORT=${DB_PORT:-3306} 13 | - DB_NAME=${DB_NAME:-moneynote} 14 | - DB_USER=${DB_USER:-root} 15 | - DB_PASSWORD=${DB_PASSWORD:-78p7gkc1} 16 | - invite_code=${invite_code:-111111} 17 | ports: 18 | - "43742:9092" 19 | - "43743:81" 20 | - "43744:82" 21 | -------------------------------------------------------------------------------- /docker-compose-ali-no-mysql.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | api: 5 | container_name: moneynote_api 6 | image: registry.cn-hangzhou.aliyuncs.com/moneynote/moneynote-api:latest 7 | restart: always 8 | extra_hosts: 9 | - "host.docker.internal:host-gateway" 10 | environment: 11 | - DB_HOST=${DB_HOST:-host.docker.internal} 12 | - DB_PORT=${DB_PORT:-3306} 13 | - DB_NAME=${DB_NAME:-moneynote} 14 | - DB_USER=${DB_USER:-root} 15 | - DB_PASSWORD=${DB_PASSWORD:-78p7gkc1} 16 | - invite_code=${invite_code:-111111} 17 | ports: 18 | - "43742:9092" 19 | 20 | pc: 21 | container_name: moneynote_pc 22 | links: 23 | - api 24 | image: registry.cn-hangzhou.aliyuncs.com/moneynote/moneynote-pc:latest 25 | restart: always 26 | environment: 27 | USER_API_HOST: http://api:9092 28 | ports: 29 | - "43743:80" 30 | 31 | h5: 32 | container_name: moneynote_h5 33 | links: 34 | - api 35 | image: registry.cn-hangzhou.aliyuncs.com/moneynote/moneynote-h5:latest 36 | restart: always 37 | environment: 38 | USER_API_HOST: http://api:9092 39 | ports: 40 | - "43744:80" -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # From https://github.com/Danimoth/gitattributes/blob/master/Web.gitattributes 2 | 3 | # Handle line endings automatically for files detected as text 4 | # and leave all files detected as binary untouched. 5 | * text=auto 6 | 7 | # 8 | # The above will handle all files NOT found below 9 | # 10 | 11 | # 12 | ## These files are text and should be normalized (Convert crlf => lf) 13 | # 14 | 15 | # source code 16 | *.json text 17 | *.sql text 18 | *.sh text 19 | *.bat text 20 | 21 | 22 | 23 | # server config 24 | .htaccess text 25 | .nginx.conf text 26 | 27 | # git config 28 | .gitattributes text 29 | .gitignore text 30 | .gitconfig text 31 | 32 | # code analysis config 33 | .jshintrc text 34 | .jscsrc text 35 | .jshintignore text 36 | .csslintrc text 37 | 38 | # misc config 39 | *.yaml text 40 | *.yml text 41 | .editorconfig text 42 | 43 | # build config 44 | *.npmignore text 45 | *.bowerrc text 46 | 47 | # Documentation 48 | *.md text 49 | LICENSE text 50 | AUTHORS text 51 | 52 | 53 | # 54 | ## These files are binary and should be left untouched 55 | # 56 | 57 | # (binary is a macro for -text -diff) 58 | *.png binary 59 | *.jpg binary 60 | *.jpeg binary 61 | *.gif binary 62 | *.ico binary 63 | *.mov binary 64 | *.mp4 binary 65 | *.mp3 binary 66 | *.gz binary 67 | *.zip binary 68 | *.7z binary 69 | *.ttf binary 70 | *.eot binary 71 | *.woff binary 72 | *.pyc binary 73 | *.pdf binary 74 | -------------------------------------------------------------------------------- /docker-compose-ali.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | mysql: 5 | container_name: moneynote_mysql 6 | image: registry.cn-hangzhou.aliyuncs.com/moneynote/mysql5-arm:latest 7 | restart: always 8 | environment: 9 | - MYSQL_ROOT_PASSWORD=${DB_PASSWORD:-78p7gkc1} 10 | - MYSQL_DATABASE=moneynote 11 | command: [ 12 | '--character-set-server=utf8mb4', 13 | '--collation-server=utf8mb4_general_ci', 14 | ] 15 | volumes: 16 | - moneynote_mysql_data:/var/lib/mysql 17 | ports: 18 | - "43740:3306" 19 | 20 | phpmyadmin: 21 | container_name: moneynote_phpmyadmin 22 | image: registry.cn-hangzhou.aliyuncs.com/moneynote/phpmyadmin5:latest 23 | links: 24 | - mysql 25 | environment: 26 | PMA_ARBITRARY: 1 27 | restart: always 28 | ports: 29 | - "43741:80" 30 | 31 | api: 32 | container_name: moneynote_api 33 | links: 34 | - mysql 35 | image: registry.cn-hangzhou.aliyuncs.com/moneynote/moneynote-api:latest 36 | restart: always 37 | environment: 38 | - DB_HOST=mysql 39 | - DB_PORT=3306 40 | - DB_NAME=moneynote 41 | - DB_USER=root 42 | - DB_PASSWORD=${DB_PASSWORD:-78p7gkc1} 43 | - invite_code=${invite_code:-111111} 44 | ports: 45 | - "43742:9092" 46 | 47 | pc: 48 | container_name: moneynote_pc 49 | links: 50 | - api 51 | image: registry.cn-hangzhou.aliyuncs.com/moneynote/moneynote-pc:latest 52 | restart: always 53 | environment: 54 | USER_API_HOST: http://api:9092 55 | ports: 56 | - "43743:80" 57 | 58 | h5: 59 | container_name: moneynote_h5 60 | links: 61 | - api 62 | image: registry.cn-hangzhou.aliyuncs.com/moneynote/moneynote-h5:latest 63 | restart: always 64 | environment: 65 | USER_API_HOST: http://api:9092 66 | ports: 67 | - "43744:80" 68 | 69 | volumes: 70 | moneynote_mysql_data: -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MoneyNote 个人部署方案 2 | 3 | 本项目提供docker compose一键运行 MoneyNote,搭建自己的记账环境。 4 | 5 | 适合所有能安装docker的机器运行,支持amd和arm架构。 6 | 7 | 如遇到任何问题欢迎加入 QQ群: 639653091 讨论。 8 | 9 | #### 部署外网环境请注意: 10 | 1. 镜像的mysql服务root用户的默认密码为78p7gkc1,请修改root默认密码。 11 | 2. 为防止恶意注册,请修改注册邀请码,invite_code参数。 12 | 13 | ### 快速启动 14 | 15 | ```sh 16 | docker run --name moneynote -e DB_PASSWORD=78p7gkc1 -e invite_code=111111 -v moneynote_mysql_data:/var/lib/mysql -p 43740:3306 -p 43741:80 -p 43742:9092 -p 43743:81 -p 43744:82 registry.cn-hangzhou.aliyuncs.com/moneynote/moneynote-all:latest 17 | ``` 18 | 19 | 如果已有mysql服务,可使用不带mysql的镜像启动。 20 | 21 | ```sh 22 | docker run --name moneynote -d \ 23 | -e DB_HOST=your_ip \ 24 | -e DB_PORT=3306 \ 25 | -e DB_NAME=moneynote \ 26 | -e DB_USER=root \ 27 | -e DB_PASSWORD=your_password \ 28 | -e invite_code=111111 \ 29 | -p 43742:9092 \ 30 | -p 43743:81 \ 31 | -p 43744:82 \ 32 | registry.cn-hangzhou.aliyuncs.com/moneynote/moneynote-all-no-mysql:latest 33 | ``` 34 | 35 | ### docker compose 启动(推荐) 36 | 37 | 1. 请下载本项目源代码,使用git命令或直接下载源代码。 38 | 39 | ```sh 40 | git clone https://github.com/getmoneynote/docker-compose-moneynote-ali.git && cd docker-compose-moneynote-ali 41 | ``` 42 | 43 | 2. docker compose 启动 44 | 45 | ```sh 46 | docker compose up -d 47 | ``` 48 | 49 | 3. 升级 50 | 51 | ```sh 52 | docker compose pull && docker compose up -d 53 | ``` 54 | 55 | 成功运行后,访问 [http://127.0.0.1:43743](http://127.0.0.1:43743) 可以打开网页版记账程序,使用前请注册一个账户,默认的邀请码是111111(6个1), 为防止被恶意注册,请修改默认邀请码。 56 | 57 | 使用手机浏览器访问,[http://127.0.0.1:43744](http://127.0.0.1:43744) (127.0.0.1替换成你的地址)。 58 | 59 | 如需备份数据,请访问 [http://127.0.0.1:43741](http://127.0.0.1:43741) 打开phpMyAdmin操作,直接导出SQL数据。 60 | 61 | phpMyAdmin登录的信息请对照api.env配置文件填写。请定期使用phpMyAdmin导出sql文件,备份你的记账数据!!!!!!!! 62 | 63 | 64 | #### docker命令说明 65 | 66 | with mysql 启动 (支持arm) 67 | ```sh 68 | docker compose --env-file api.env -f docker-compose-ali.yml up -d 69 | ``` 70 | 71 | with mysql 升级 72 | ```sh 73 | docker compose --env-file api.env -f docker-compose-ali.yml pull && docker compose --env-file api.env -f docker-compose-ali.yml up -d 74 | ``` 75 | 76 | no mysql 启动 77 | ```sh 78 | docker-compose --env-file api-no-mysql.env -f docker-compose-ali-no-mysql.yml up -d 79 | ``` 80 | 81 | no mysql 升级 82 | ```sh 83 | docker compose --env-file api-no-mysql.env -f docker-compose-ali-no-mysql.yml pull && docker-compose --env-file api-no-mysql.env -f docker-compose-ali-no-mysql.yml up -d 84 | ``` 85 | 86 | docker 5 in 1 启动 87 | ```sh 88 | docker compose --env-file api.env -f docker-compose-all-ali.yml up -d 89 | ``` 90 | 91 | docker 5 in 1 升级 92 | ```sh 93 | docker compose -f docker-compose-all-ali.yml pull && docker compose --env-file api.env -f docker-compose-all-ali.yml up -d 94 | ``` 95 | 96 | docker 3 in 1 启动 97 | ```sh 98 | docker compose --env-file api-no-mysql.env -f docker-compose-all-no-mysql-ali.yml up -d 99 | ``` 100 | 101 | docker 3 in 1 升级 102 | ```sh 103 | docker compose -f docker-compose-all-no-mysql-ali.yml pull && docker compose --env-file api-no-mysql.env -f docker-compose-all-no-mysql-ali.yml up -d 104 | ``` 105 | 106 | 107 | ## QA 108 | 1. 很多人安装遇到数据库的问题,有可能是之前安装过,有数据文件,且自己修改过root密码。 使用 docker volume ls 命令查看有没有moneynote_mysql_data文件,如果有,可以自己修改为另外的数据文件,或者删除moneynote_mysql_data 109 | 110 | ## 参考资料 111 | [安装docker](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-centos-7) --------------------------------------------------------------------------------