旅行追踪和行程规划工具AdventureLog

什么是 AdventureLog ?

AdventureLog 是一种记录您的旅行并与世界分享的简单方法。您可以在日志中添加照片、笔记等。跟踪您访问过的国家、探索去过的地区和地方。您还可以查看您的旅行统计数据和里程碑。AdventureLog 旨在成为您终极的旅行伴侣,帮助您记录您的冒险经历并轻松规划新的冒险经历。

主要功能:

  • 使用姓名、日期、地点、描述和评级等字段记录过去的冒险经历。
  • 规划未来在类似领域的冒险。
  • 标记不同的活动类型以便更好地组织。
  • 查看国家、地区并标记访问过的地区。

安装

在群晖上以 Docker 方式安装。

docker-compose.yml

采用 docker-compose 安装,将下面的内容保存为 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
version: "3.9"

services:
web:
image: ghcr.io/seanmorley15/adventurelog-frontend:latest
container_name: adventurelog-web
ports:
- "8130:3000"
environment:
- PUBLIC_SERVER_URL=http://server:8000
- ORIGIN=http://192.168.0.197:8130
- BODY_SIZE_LIMIT=Infinity
depends_on:
- server

db:
image: postgres:latest
container_name: adventurelog-db
volumes:
- ./data:/var/lib/postgresql/data/
environment:
POSTGRES_DB: database
POSTGRES_USER: adventure
POSTGRES_PASSWORD: changeme123

server:
image: ghcr.io/seanmorley15/adventurelog-backend:latest
container_name: adventurelog-server
ports:
- "8131:8000"
volumes:
- ./media:/code/media/
environment:
- PGHOST=db
- PGDATABASE=database
- PGUSER=adventure
- PGPASSWORD=changeme123
- SECRET_KEY=changeme123
- DJANGO_ADMIN_USERNAME=admin
- DJANGO_ADMIN_PASSWORD=admin
- DJANGO_ADMIN_EMAIL=admin@example.com
- PUBLIC_URL='http://192.168.0.197:8132
- CSRF_TRUSTED_ORIGINS=http://192.168.0.197:8130,http://192.168.0.197:8131,http://192.168.0.197:8132
- DEBUG=False
- FRONTEND_URL='http://192.168.0.197:8130'
depends_on:
- db

nginx:
image: nginx:latest
container_name: adventurelog-nginx
ports:
- "8132:80" # Using port 8131 to avoid conflict with your existing setup
volumes:
- ./media:/app/media
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
- server

其中 192.168.0.197 是群晖主机的 IP

数据库的环境变量

名称 必需 描述
POSTGRES_DB 数据库库名
POSTGRES_USER 数据库用户
POSTGRES_PASSWORD 数据库密码

前端的环境变量

名称 必需 描述 默认值
PUBLIC_SERVER_URL 前端 SSR 服务器使用什么来连接到后端。 http://server:8000
ORIGIN 有时 如果使用 HTTPS,则不需要。如果不是,请将其设置为您将从中访问应用程序的域。 http://localhost:8080
BODY_SIZE_LIMIT 用于设置服务器的最大上传大小。应进行更改以防止有人上传过多!自定义值必须以 kb 为单位设置。 Infinity

后端的环境变量

名称 必需 描述 默认值
PGHOST 数据库主机。 db
PGDATABASE 数据库库名。 database
PGUSER 数据库用户。 adventure
PGPASSWORD 数据库密码。 changeme123
DJANGO_ADMIN_USERNAME 默认用户名。 admin
DJANGO_ADMIN_PASSWORD 默认密码,首次登录后更改。 admin
DJANGO_ADMIN_EMAIL 默认用户的电子邮件。 admin@example.com
PUBLIC_URL 这是 nginx 容器的公开可访问 URL 。您应该能够从访问应用程序的此 URL 访问 nginx http://127.0.0.1:81
CSRF_TRUSTED_ORIGINS 需要更改为您使用后端服务器和前端的地址。这些值以逗号分隔。 需要改变。
FRONTEND_URL 这是前端容器的公开可访问 URL 。此链接应可供所有用户访问。用于生成电子邮件。 http://localhost:3000

以上内容可以在官方文档中找到原版的说明

  • https://github.com/seanmorley15/AdventureLog#frontend-container-web
  • https://docs.adventurelog.app/docs/Installation/docker#frontend-container-web

如果想要禁止注册,可以在环境变量中增加下面的环境变量

1
2
3
4
environment:  
- DISABLE_REGISTRATION=True
# OPTIONAL: Set the message to display when registration is disabled
- DISABLE_REGISTRATION_MESSAGE='Registration is disabled for this instance of AdventureLog.'

DISABLE_REGISTRATION_MESSAGE 为可选项,用于设置禁用注册时显示的消息

nginx.conf

还需要准备一个 nginx.conf,来定义转发规则

1
2
3
4
5
6
7
8
server {
listen 80;
server_name localhost;

location /media/ {
alias /app/media/;
}
}

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 adventurelog 和 子目录
mkdir -p /volume1/docker/adventurelog/{data,media}

# 进入 adventurelog 目录
cd /volume1/docker/adventurelog

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8130 就能看到主界面

可以注册账号,也可以用环境变量中设置的 admin/admin

登录成功后

点右下角的 +

分为 Visited AdventurePlanned Adventure 两种类型

设置详细信息

保存之后

再多加几个

对了,老苏用的版本是 v0.5.1

参考文档

seanmorley15/AdventureLog: Self-hostable travel tracker and trip planner.
地址:https://github.com/seanmorley15/AdventureLog

Home | AdventureLog
地址:https://adventurelog.app/

Adventure Log | Adventure Log
地址:https://docs.adventurelog.app/

AdventureLog: Self Hosted Travel Tracker and Planner : r/selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/1eswkgd/adventurelog_self_hosted_travel_tracker_and/