PassNAT LogoPassNAT

开源旅行记录应用 AdventureLog,Docker 快速部署指南,NAS 轻松搭建个人旅行地图系统

作者

小编

发布时间

Curving abstract shapes with an orange and blue gradient

项目介绍

AdventureLog 是一款开源、功能强大的旅行记录与规划应用,帮助你轻松记录冒险足迹、追踪全球旅行轨迹。基于 SvelteKit + TailwindCSS 前端和 Django + PostGIS 后端构建,提供了一个现代化、易用的旅行伴侣体验。

无论你是热爱探险的背包客,还是精心规划行程的旅游爱好者,AdventureLog 都能满足你的需求。你可以在互动地图上标记已访问和计划前往的地点,记录每次旅行的细节和回忆,与朋友和家人分享你的冒险故事,甚至协作规划下一次的旅程。项目完全开源,界面简洁美观,无需复杂配置即可快速上手。

项目地址:点我跳转

部署安装

如果你想在外网也能访问这个项目,建议配置内网穿透服务。可以前往帕斯内网穿透注册账号,具体的使用方法请点我查看内网穿透完整上手指南。

AdventureLog 采用 Docker Compose 的方式部署,包含前端、后端和数据库三个服务,开箱即用。

快速部署步骤

第一步:准备配置文件

复制下列的 docker-compose 配置文件到你的 NAS 或服务器上,保存为 'docker-compose.yml':

1services:
2 web:
3 image: ghcr.io/seanmorley15/adventurelog-frontend:latest
4 container_name: adventurelog-frontend
5 restart: unless-stopped
6 env_file: .env
7 ports:
8 - "${FRONTEND_PORT:-8015}:3000"
9 depends_on:
10 - server
11
12 db:
13 image: postgis/postgis:16-3.5
14 container_name: adventurelog-db
15 restart: unless-stopped
16 env_file: .env
17 volumes:
18 - postgres_data:/var/lib/postgresql/data/
19
20 server:
21 image: ghcr.io/seanmorley15/adventurelog-backend:latest
22 container_name: adventurelog-backend
23 restart: unless-stopped
24 env_file: .env
25 ports:
26 - "${BACKEND_PORT:-8016}:80"
27 depends_on:
28 - db
29 volumes:
30 - adventurelog_media:/code/media/
31
32volumes:
33 postgres_data:
34 adventurelog_media:

第二步:打开 NAS 设备

打开飞牛 NAS 或其他的 NAS 设备,进入 Docker 管理界面。

第三步:创建环境配置文件

在同一目录下创建 '.env' 文件,用于配置数据库和应用的相关参数。根据你的需求填写以下内容:

1# 数据库配置
2POSTGRES_DB=adventurelog
3POSTGRES_USER=adventurelog
4POSTGRES_PASSWORD=你的数据库密码
5
6# Django 配置
7DEBUG=False
8SECRET_KEY=你的密钥
9ALLOWED_HOSTS=localhost,127.0.0.1
10
11# 前端端口配置
12FRONTEND_PORT=8015
13
14# 后端端口配置
15BACKEND_PORT=8016

这里需要修改成你自己的数据库密码和 Django 密钥,其他的可以保持不变。

第四步:启动容器

在包含 'docker-compose.yml' 和 '.env' 文件的目录下,执行以下命令启动所有服务:

1docker-compose up -d

如果提示端口被占用,可以修改 '.env' 文件中的 'FRONTEND_PORT' 和 'BACKEND_PORT' 字段。例如,如果 8015 端口已被占用,可以改为 8017 或其他未使用的端口。注意容器内部的端口(冒号后面的 3000 和 80)保持不变,只需修改宿主机的映射端口。

第五步:配置持久化存储

项目包含两个需要持久化的卷: 'postgres_data':数据库数据存储位置 'adventurelog_media':用户上传的媒体文件存储位置

Docker Compose 会自动创建这些卷,无需手动干预。如果你想将数据存储到特定的目录,可以修改 docker-compose.yml 中的卷配置。

第六步:访问应用

部署完成后,打开浏览器访问: 前端应用:'http://你的NAS地址:8015' 后端 API:'http://你的NAS地址:8016'

首次访问时,系统会引导你完成初始化设置。你可以创建账户、开始记录你的旅行足迹,并在互动地图上标记你的冒险地点。

环境变量说明

必须设置:

'POSTGRES_PASSWORD':数据库密码,请设置为强密码 'SECRET_KEY':Django 应用密钥,用于加密会话数据

可选设置:

'DEBUG':调试模式,生产环境建议设为 False 'ALLOWED_HOSTS':允许访问的主机列表,多个主机用逗号分隔 'FRONTEND_PORT':前端访问端口,默认 8015 'BACKEND_PORT':后端访问端口,默认 8016

其他环境变量保持默认即可,无需额外配置。


到这里,AdventureLog 就已经成功部署完成了!你现在可以开始记录你的每一次冒险,在全球地图上追踪你的足迹,与朋友协作规划下一次旅行。祝你使用愉快!

本篇教程结束