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

news2024/11/17 18:26:48

在这里插入图片描述

什么是 AdventureLog ?

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

主要功能:

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

安装

在群晖上以 Docker 方式安装。

docker-compose.yml

采用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

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 访问 nginxhttp://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

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

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,来定义转发规则

server {
    listen 80;
    server_name localhost;

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

然后执行下面的命令

# 新建文件夹 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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2088819.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chapter09-OOP高级部分——(抽象类)——day12

目录 398-抽象类引出 399-抽象类细节1 400-抽象类细节 401-抽象类的课堂练习 398-抽象类引出 399-抽象类细节1 400-抽象类细节 401-抽象类的课堂练习 一、 1、错,dinal不能被继承 2、错,不能有static,没办法被重写 3、错,…

跟着我发现味蕾新宝藏

你是不是常常为找不到正宗又美味的传统美食而烦恼呢?是不是渴望品尝那些带着浓郁地方特色、满满都是回忆味道的美食呢?那你可一定不能错过食家巷。 先说那食家巷的大烤馍,外表金黄,散发着诱人的光泽。拿在手里沉甸甸的&…

Python用 Uvicorn 打造高性能 FastAPI 应用程序使用详解

概要 随着 Python 在 Web 开发领域越来越受欢迎,开发人员对于构建快速、可靠和高性能的 Web 应用程序的需求也日益增加。在这个背景下,Uvicorn 这个高性能 ASGI 服务器应运而生,它为构建现代化的 Python Web 应用程序提供了强大的支持。 本文将详细介绍 Uvicorn 的使用教程…

零知识证明-椭圆曲线(五)

这章主要讲述椭圆曲线 N 子群的阶n ,明文嵌入等 补充上章的知识点 1:椭圆曲线的阶 一个群中的元素数量称为这个群的阶(order) 当 p 小时 ,0到p-1的所有整数x代入方程,然后对于每个x都找到所有满足方程的解&…

Python爬虫学习路线教程:从零基础到入门

如果你也正在入门Python爬虫,那么你需要的话可以,点击这里👉Python重磅福利:入门&进阶全套学习资料、电子书、软件包、项目源码等等免费分享! 前言 在数字化时代,信息如潮水般汹涌而来,如…

基于火锅餐饮大数据的精准推荐系统【协同过滤、前后台信息管理、万能推荐系统】

文章目录 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主项目介绍项目展示项目过程大屏设计管理员界面用户界面数据库展示用户信息评论功能商家回复每文一语 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主 项目介绍…

【手机取证】智能手机位置数据提取方法

文章关键词:手机取证、电子数据取证、云取证 一、前言 随着智能手机的普及,人们的生活方式和行为模式发生了巨大变化。智能手机不仅是通信工具,还是集成了多种传感器和定位技术的强大设备。这些设备每天都会产生大量的位置信息,…

优质企业上网行为管理软件大盘点

员工在上班时间摸鱼,看似是一个小问题,但却会给企业带来诸多不良影响。首先,摸鱼会降低员工的工作效率,导致工作任务无法按时完成,影响项目进度。其次,摸鱼行为会破坏企业的工作氛围,影响其他员…

Dxf文件中多段线弧线的计算

要计算弧形的参数(包括起始角度、跨度角度以及包围弧形的矩形),我们首先需要理解一些基础知识: 弧的半径和中心:弧是圆的一部分,因此我们首先要计算整个圆的半径和圆心。起始角度和跨度角度:弧…

Vue3.0项目实战(二)——大事件管理系统登录注册功能实现

目录 1. 登录注册页面 [element-plus 表单 & 表单校验] 1.1 注册登录 静态结构 & 基本切换 2. 注册功能 2.1 实现注册校验 2.2 注册前的预校验 2.3 封装 api 实现注册功能 3. 登录功能 3.1 实现登录校验 3.2 登录前的预校验 & 登录成功 1. 登录注册页面 […

C++必修:异常

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C学习 贝蒂的主页:Betty’s blog 1. C语言处理错误的方式 一般而言,在程序方式异常时,C语言…

空间计量 | 似不相关回归SUR

通常情况下,研究X对于Y的影响时,Y只能为一个,如果有多个则重复进行多次,即每次都只考虑单一方程估计,如果有多个Y时,将多个Y同时进行联合估计有可能会提高估计效率,即模型的拟合能力更加接近于实…

计算机毕业设计选题推荐-博客平台-博客系统-Java/Python项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

嵌入式软件--数电基础 DAY 6

一、前情复习 1.存储电路的复习 我们刚开始接触的第一个存储电路是SR锁存器。但是SR锁存器存在诸多不足,比如我们不希望出现无意义的状态,于是我们有了D锁存器,再输入电路中加入非门电路,避免了无意义状态,但同时失去…

波导模式分析1 高度形变圆波导

摘要:略 简介:略 (主要学习分析方法) 在本文中,提出了一种宽带圆TE01模式转换器的设计方法。为了在宽频带内抑制寄生模式的生成,引入了高度变形的圆波导。对高度变形圆波导中的本征模的特性进行了理论分析。分析显示&…

【 html+css 绚丽Loading 】000026 五行吞灵盘

前言:哈喽,大家好,今天给大家分享htmlcss 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 &#x1f495…

harbor部署+docker-compose

harbor部署 harbor介绍 Harbor 是一个开源的企业级容器镜像仓库,用于存储和分发 Docker 镜像及其他容器格式的镜像。 Harbor 提供了一个集中化的存储库,方便团队成员共享和管理容器镜像。你可以将构建好的镜像推送到 Harbor 仓库中,其他成…

CC1链_全网最菜的分析思路

文章目录 1 你必须知道的点1.1 反序列化利用链的起点是readObject()方法1.2 回顾反射执行系统命令1.3 相关类の功能简单介绍1.3.1 InvokerTransformer类1.3.2 ChainedTransformer类1.3.3 ConstantTransformer类1.3.4 总结一下上述3个类调用transform()方法的不同 2 CC1链的环境…

嘴上说“摆烂”的90后,考了最多的PMP证书......

现在,“摆烂”一词经常被大家挂在嘴边,但真正能够安心摆烂的人却没多少,特别是承担着社会主要劳动力的90后们。 大部分90后都是嘴上说着摆烂,但该卷的时候还是得卷,特别是在考证这件事上! 一、PMP考生年龄…

缓存配置错误导致授权绕过

一个电子商务网站它有 2 个资产target.com admin.target.com target.com是面向用户的门户,用户可以去那里购买物品。admin.target.com基本上是卖家的管理门户,卖家可以在其中列出他们的物品,跟踪订单、客户信息等。 我通常使用 Autorize …