⚠️:你必须准备

域名:国内可能需要备案

服务器:Linux

‼️‼️‼️新买的服务器一定要做一些安全的防护具体可参考

日期: 2023-06-04   标签: #安全  #服务器 
执行系统更新 经常更新您的系统是您可以对任何操作系统采取的最大的安全预防措施。软件更新的范围从关键漏洞补丁到小错误修复,许多软件漏洞在公开时实际上已经被修补。更新还为您提供了可用于您的分发的最新软件版本。 Ubuntu、Debian 和 Kali Linux 1 apt update && apt upgrade CentOS/RHEL Stream 和 Fedora 包括 CentOS Stream 8(及更高版本)、CentOS 8、其他 RHEL 衍生产品(包括 AlmaLinux 8 和 Rocky Linux 8)和 Fedora 1 dnf upgrade 设置时区 默认情况下,所有新的计算实例都设置为 UTC 时间。但是,您可能更喜欢使用您居住的时区,因此日志文件时间戳是相对于您当地时间的。 大多数发行版 包括 CentOS Stream 8(及更新版本)、CentOS 7(及更新版本)、其他 RHEL 衍生产品(包括 AlmaLinux 8 和 Rocky Linux 8)、Fedora 和 Arch。这些说明也适用于大多数 Ubuntu、Debian 和 openSUSE 发行版,但在这些情况下可能首选其他方法。 使用 timedatectl 输出可用时区列表 1 timedatectl list-timezones 使用箭头键、 Page Up 和 Page Down 浏览列表。复制或记下您想要的时区,然后按 q 退出列表。 使用以下命令设置时区,将 America/New_York 替换为您喜欢的时区。 1 timedatectl set-timezone 'America/New_York' Ubuntu, Debian 和 Kali Linux Ubuntu 和 Debian 都带有一个更友好的工具,称为 tzdata 打开 tzdata 工具 1 dpkg-reconfigure tzdata 使用箭头键选择您选择的大陆,然后按 Enter 使用箭头键选择您所在的地区,然后按 Enter 检查时间 使用 date 命令根据您的服务器查看当前日期和时间 1 2 root@localhost:~# date Thu Feb 16 12:17:52 EST 2018 使用NTP服务同步 纯净装机的服务会没有NTP服务同步,时间不同步,导致很多加密应用出现错误 这里用chrony同步时间 1 2 3 4 5 6 7 #安装 sudo apt update sudo apt install chrony #启用 sudo systemctl start chrony #查看状态 sudo systemctl status chrony 添加NTP服务器 sudo nano /etc/chrony/chrony.conf 1 2 3 4 server ntp1. ......

省流版

docker一把过

1、首先新建文件夹,比如fireflyiii

cd fireflyiii,创建docker-compose.yml

拷贝下面,把{{}}内的改为自己的,不要{{}}

 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
version: '3.3'

services:
  nginx-proxy:
    image: nginxproxy/nginx-proxy
    container_name: nginx-proxy
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - ./certs:/etc/nginx/certs:ro
      - ./vhost:/etc/nginx/vhost.d
      - ./html:/usr/share/nginx/html

  nginx-proxy-acme:
    image: nginxproxy/acme-companion
    container_name: nginx-proxy-acme
    restart: always
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./acme:/etc/acme.sh
      - ./certs:/etc/nginx/certs
      - ./vhost:/etc/nginx/vhost.d
      - ./html:/usr/share/nginx/html
    environment:
# 警告接收email地址
      - DEFAULT_EMAIL={{[email protected]}}
      - NGINX_PROXY_CONTAINER=nginx-proxy
    depends_on:
      - nginx-proxy

  app:
    image: fireflyiii/core:latest
    container_name: firefly_app
    restart: always
    volumes:
      - firefly_iii_upload:/var/www/html/storage/upload
    env_file: .env
    depends_on:
      - db
    expose:
      - "8080"
    environment:
# 这里要改为自己的域名
      - VIRTUAL_HOST={{fireflyiii.com}}
      - VIRTUAL_PORT=8080
      - LETSENCRYPT_HOST={{fireflyiii.com}}
      - LETSENCRYPT_EMAIL={{[email protected]}}

  db:
    # docker 20.10.10 以上使用最新
    image: mariadb:latest 
    # image: mariadb:10.7.8-focal
    container_name: firefly_db
    hostname: fireflyiiidb
    restart: always
    environment: .db.env
    volumes:
      - ./firefly_iii_db:/var/lib/mysql

  cron:
    image: alpine
    container_name: firefly_cron
# 使用登录之后的选项--命令行令牌的
    command: sh -c "echo \"0 3 * * * wget -qO- http://app:8080/api/v1/cron/{{登录之后的选项--命令行令牌获取}}\" | crontab - && crond -f -L /dev/stdout"

  redis:
    image: redis:6.0.9
    container_name: redis
    restart: always
    volumes: 
      - ./redis/data:/data
      - ./redis/logs:/var/log/redis
      - ./redis/conf/redis.conf:/etc/redis/redis.conf
      - /etc/localtime:/etc/localtime:ro # 设置容器时区与宿主机保持一致
    environment:
      - TZ=Asia/Shanghai
      - LANG=en_US.UTF-8
    command:
      redis-server /etc/redis/redis.conf # 启动redis命令

volumes:
   firefly_iii_upload:
   firefly_iii_db:
   certs:
   vhost:
   html:

caddy版:

 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
version: '3.3'

services:
  caddy:
    image: caddy:2.7.6
    container_name: caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./caddy/site:/srv
      - ./caddy/caddy_data:/data
      - ./caddy/caddy_config:/config
    depends_on:
      - app

  app:
    image: fireflyiii/core:version-6.0.30
    container_name: firefly_app
    restart: always
    volumes:
      - firefly_iii_upload:/var/www/html/storage/upload
    env_file: .env
    depends_on:
      - redis

  db:
    # docker 20.10.10 以上使用最新
    image: mariadb:10.11.6
    # image: mariadb:10.7.8-focal
    container_name: firefly_db
    hostname: fireflyiiidb
    restart: always
    env_file: .db.env
    volumes:
      - ./firefly_iii_db:/var/lib/mysql
      - ./my.cnf:/etc/mysql/conf.d/my.cnf --rm

  cron:
    image: alpine:3.19
    restart: always
    container_name: firefly_cron
    command: sh -c "echo \"0 3 * * * wget -qO- http://app:8080/api/v1/cron/sEkDhFJ9UDfm6HiGm647YaYV5CFz7qRZ\" | crontab - && crond -f -L /dev/stdout"

  redis:
    image: redis:6.0.9
    container_name: redis
    restart: always
    # ports:
    #   - 6379:6379
    volumes: 
      - ./redis/data:/data
      - ./redis/logs:/var/log/redis/redis.log
      - ./redis/conf/redis.conf:/etc/redis/redis.conf
      - /etc/localtime:/etc/localtime:ro # 设置容器时区与宿主机保持一致
    environment:
      - TZ=Asia/Shanghai
      - LANG=en_US.UTF-8
    command:
      redis-server /etc/redis/redis.conf # 启动redis命令
    depends_on:
      - db

volumes:
   firefly_iii_upload:
   firefly_iii_db:

2、修改配置文件

fireflyiii配置文件

下载wget https://raw.githubusercontent.com/firefly-iii/firefly-iii/v6.0.11/.env.example

cp .env.example .env

新建并修改.db.env

1
2
3
4
MYSQL_RANDOM_ROOT_PASSWORD=yes
MYSQL_USER=firefly
MYSQL_PASSWORD=your_MYSQL_PASSWORD
MYSQL_DATABASE=firefly

根据自己需要自行修改即可,简单说下配置redis

 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
# If you're looking for performance improvements, you could install memcached or redis
CACHE_DRIVER=redis
SESSION_DRIVER=redis

# If you set either of the options above to 'redis', you might want to update these settings too
# If you use Docker or similar, you can set REDIS_HOST_FILE, REDIS_PASSWORD_FILE or
# REDIS_PORT_FILE to set the value from a file instead of from an environment variable

# can be tcp, unix or http
REDIS_SCHEME=tcp

# use only when using 'unix' for REDIS_SCHEME. Leave empty otherwise.
REDIS_PATH=

# use only when using 'tcp' or 'http' for REDIS_SCHEME. Leave empty otherwise.
REDIS_HOST=redis
REDIS_PORT=6379

# Use only with Redis 6+ with proper ACL set. Leave empty otherwise.
REDIS_USERNAME=
REDIS_PASSWORD=

# always use quotes and make sure redis db "0" and "1" exists. Otherwise change accordingly.
REDIS_DB="0"
REDIS_CACHE_DB="1"

redis 配置文件

下载wget https://raw.githubusercontent.com/redis/redis/unstable/redis.conf

根据自己需要自行修改即可

最后docker-compose up -d启动

docker-compose logs -f --tail=500 查看日志

现在fireflyiii已成功启动了,你可能会遇到很多错误,养成看日志的习惯,接下来就是使用了,不难😎

Firefly Iii使用
日期: 2023-05-28   标签: #理财  #预算  #存钱  #买车  #生活 
为何要用Firefly Iii 简介及特点 Login to Firefly III Demo 安全 账本的安全,不言而喻了,它是自托管和隔离的,意味着数据完全掌握在自己手里 复式记账 预算、存钱 自动化,可以自动化设置一些操作 各端体验 PC端:web页面访问,适合PC浏览器上查看,特别是报表,很适合大屏观看 移动端:没有单独的App,但是支持PWA,推荐用chrome打开,然后添加到桌面就行了,和App无异 说点题外的,当年PWA出来的时候Safari是支持的,后来支持的功能就少了,是因为自己的App Store出来了。但是最近貌似对PWA的支持友好了😂 不扯太远了,总之只要支持PWA,基本上和App无异,对App有执念的,可以做个客户端,官方API都是开放的 登录 在firefly配置文件env内搜索SITE_OWNER 这个值就是配置的管理员邮箱 建议使用和域名相同的邮箱登录,如果无配置邮箱服务,可以使用阿里的邮箱推送服务,目前有免费额度可以用 安全设置 两步验证 打开firefly点击选项 个人档案 两步验证点击启用 手机下载Google Authenticator,切记不要登录Google账号,会上传到云上去 启用之后,重新登录 选项设置 货币 默认是欧元,可切换到人民币Chinese yuan (RMB) (¥),如果有其他货币也可自行切换 管理 包括检查更新,邮箱测试等 初始化设置 账户 分类 标签 高级设置 预算👍 制定预算将帮助您更有效地分配资金并更轻松地实现财务目标 预算这个功能超级好用 首先,点击左侧预算,创建新预算 右侧选填字段内 自动预算 选择最后一个Adjusted ("... and correct for overspending") 举🌰 每个月预算都是5000 1月预算5000,到月底花了8000,超预算3000 2月预算就变为2000,到月底花了1000 3月预算就变为6000 这个功能一直在找,是因为某财经大佬曾说过 然后,当你点开“本月支出建议”表格时, “根据您过去十二个月的支出以及理财目标、收入情况综合分析,建议您本月食物支出不要超过元,休闲娱乐支出不要超过元……祝您早日达成理财目标。” 下个月: “您上个月非常节俭,比预计多剩余了2000元。不妨拿出500元买点喜欢的东西奖励自己!” 当然自己开发一个这个软件耗时耗力,所以当时就在找类似开源软件,扯的有点远了😂😂😄 预算如何分配? 50/30/20 预算法则 50/30/20 预算法则是一种简单的预算策略,可以帮助您优先考虑财务目标: 50% 用于必需品:将收入的 50% 用于支付基本生活费用,如住房、水电费、日常食品购买和交通费。 30% 用于愿望:将收入的 30% 用于自由支配花费和非必需开销,如外出就餐、娱乐、爱好和购物。 20% 用于储蓄和债务偿还:将收入的 20% 用于储蓄、投资和偿还债务。 这个体系的目的是确保您的基本需求得到满足,有一定的自由支配费用空间,并优先为未来储蓄和管理债务。 这些百分比并非一成不变。如果资金紧张,您可能需要将收入的更高比例用于支付必需品。如果您的债务很大,您可以选择分配超过 20% 的收入用于债务偿还,以加快进度。同样,如果您的储蓄目标雄心勃勃,可以将更高的比例分配给储蓄。 购买汽车的预算 一条经验法则是,您车辆的总价值不应超过您年收入的50% 另一个好的经验法则是 20/4/10 规则: 至少支付 20% 的首付款。 永远不要获得超过 4 年的贷款。 您总收入的 10% 或更少用于所有车辆支出,包括贷款支付、保险、汽油、登记费、维护和修理。 另外一个法则: 年收入买车 月收入买表 如果您的预算符合以下任一情况,您应该考虑改变您的生活方式: 您每月的抵押贷款/租金超过您实得工资的 30%。你可能想考虑找个室友,或者搬到更便宜的地方。 您每月在车辆上的总支出超过您实得工资的 15%。您可能需要考虑拼车上班、减少出行次数,或者乘坐公共汽车或自行车。如果可以的话,您可能还想考虑搬到更近的地方或卖掉您的汽车。每月预算的 10% 是一个更健康的汽车支出数字。 本杰明·富兰克林曾说:“省下一分钱就等于赚了一分钱。”如果这句话是真的,那么削减预算就相当于提高了你的收入。 常被提及的减少开支的方法有:削减有线电视、将手机套餐调整到实际使用的通话/数据量、在家烹饪/带食物去工作、重新评估贷款、扔掉优惠券、下单前先找找优惠券、取消在线购物网站的信用卡关联、减少信用卡使用并改用现金、不用时关闭灯光、不在家或睡觉时降低暖气/空调等。 账单 存钱罐👍 这个功能有助于帮助您实现您的财务目标 应急资金(fuck money) 对大多数人来说,3 到 6 个月的开支就足够了。如果您的收入不稳定或不确定,可能需要更大的应急基金(例如 9 到 12 个月) 一般放银行存款或货币基金内r1r2即可 超长期养老 以后养老要靠自己了,每月拿出收入的10%或20%放到长期账户内,为以后退休做准备 自动化 参考 Managing your finances - Firefly III documentation budgeting commontopics commontopics emergencyfunds early_career organizing ......
浏览器输入域名访问即可,英文不好,点击选项-偏好设定修改语言为中文

详细版

空了再写吧!🤣

备份

财务数据特别重要,所以一定要备份

下载sh

Script to backup Firefly III database, uploads and config files installed with docker-compose · GitHub

这个shell 根据命令执行即可备份

添加为定时任务

新建backup.sh

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#!/bin/bash

#本地备份
echo "开始备份"
bash /path/to/fireflyiii/firefly-iii-backuper.sh backup /path/to/fireflyiii/backup/firefly-$(date '+%F').tar
echo "备份完成"

#备份到tg群里,不要删掉即可
# Define variables
token=""
chat_id=""
message_thread_id=""
file_path="/path/to/fireflyiii/backup/firefly-$(date '+%F').tar"
text="备份成功"

# Send file to telegram
curl -F chat_id="$chat_id" -F message_thread_id="$message_thread_id" -F document=@"$file_path" https://api.telegram.org/bot$token/sendDocument

添加到cron内

3 1 * * * bash /path/to/fireflyiii/backup.sh


参考

Docker - Firefly III documentation