diff --git a/Apps/CashPilot/docker-compose.yml b/Apps/CashPilot/docker-compose.yml new file mode 100644 index 000000000..2488848ac --- /dev/null +++ b/Apps/CashPilot/docker-compose.yml @@ -0,0 +1,160 @@ +name: cashpilot + +services: + cashpilot-ui: + image: drumsergio/cashpilot:0.2.53 + container_name: cashpilot-ui + deploy: + resources: + reservations: + memory: 256M + restart: unless-stopped + ports: + - target: 8080 + published: "8080" + protocol: tcp + volumes: + - type: bind + source: /DATA/AppData/$AppID/data + target: /data + - type: bind + source: /DATA/AppData/$AppID/fleet + target: /fleet + environment: + TZ: $TZ + CASHPILOT_SECRET_KEY: changeme + networks: + - cashpilot-network + depends_on: + cashpilot-worker: + condition: service_started + init: true + security_opt: + - no-new-privileges:true + x-casaos: + envs: + - container: TZ + description: + en_US: Timezone + - container: CASHPILOT_SECRET_KEY + description: + en_US: Secret key for session encryption (change this!) + ports: + - container: "8080" + description: + en_US: Web UI Port + volumes: + - container: /data + description: + en_US: Application data and SQLite database + - container: /fleet + description: + en_US: Shared fleet state between UI and Worker + + cashpilot-worker: + image: drumsergio/cashpilot-worker:0.2.53 + container_name: cashpilot-worker + deploy: + resources: + reservations: + memory: 256M + restart: unless-stopped + volumes: + - type: bind + source: /var/run/docker.sock + target: /var/run/docker.sock + - type: bind + source: /DATA/AppData/$AppID/worker-data + target: /data + - type: bind + source: /DATA/AppData/$AppID/fleet + target: /fleet + environment: + TZ: $TZ + CASHPILOT_UI_URL: http://cashpilot-ui:8080 + CASHPILOT_WORKER_NAME: local + networks: + - cashpilot-network + init: true + security_opt: + - no-new-privileges:true + x-casaos: + envs: + - container: TZ + description: + en_US: Timezone + - container: CASHPILOT_UI_URL + description: + en_US: URL of the CashPilot UI service + - container: CASHPILOT_WORKER_NAME + description: + en_US: Name for this worker instance + volumes: + - container: /var/run/docker.sock + description: + en_US: Docker socket (required to deploy and manage service containers) + - container: /data + description: + en_US: Worker data directory + - container: /fleet + description: + en_US: Shared fleet state between UI and Worker + +networks: + cashpilot-network: + name: cashpilot-network + +x-casaos: + architectures: + - amd64 + - arm64 + main: cashpilot-ui + store_app_id: cashpilot + category: Utilities + author: GeiserX + developer: GeiserX + icon: https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/CashPilot/icon.png + screenshot_link: + - https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/CashPilot/screenshot-1.png + thumbnail: "" + description: + en_US: | + CashPilot is a self-hosted platform to deploy, manage, and monitor passive income services from a single web interface. Instead of manually setting up dozens of Docker containers, CashPilot handles everything from one place. + + It supports Docker-based services (deployed and managed automatically) and browser extension / desktop-only services (tracked via the web UI with signup links and balance monitoring). A browser-based setup wizard guides you through account creation and service deployment across 40+ services including bandwidth sharing, DePIN, storage, and GPU compute. + + Note: The worker container requires access to the Docker socket to deploy and manage service containers. + zh_CN: | + CashPilot 是一个自托管平台,可以从单一 Web 界面部署、管理和监控被动收入服务。无需手动设置数十个 Docker 容器,CashPilot 可以从一个地方处理所有事情。 + + 它支持 Docker 服务(自动部署和管理)和浏览器扩展/桌面服务(通过 Web UI 跟踪,提供注册链接和余额监控)。内置的浏览器向导引导您完成 40 多项服务的账户创建和服务部署,包括带宽共享、DePIN、存储和 GPU 计算。 + + 注意:Worker 容器需要访问 Docker socket 以部署和管理服务容器。 + de_DE: | + CashPilot ist eine selbst gehostete Plattform zum Bereitstellen, Verwalten und Ueberwachen von passiven Einkommensdiensten ueber eine einzige Weboberflaeche. Anstatt dutzende Docker-Container manuell einzurichten, erledigt CashPilot alles an einem Ort. + fr_FR: | + CashPilot est une plateforme auto-hebergee pour deployer, gerer et surveiller des services de revenus passifs depuis une seule interface web. Au lieu de configurer manuellement des dizaines de conteneurs Docker, CashPilot gere tout depuis un seul endroit. + es_ES: | + CashPilot es una plataforma autoalojada para desplegar, gestionar y monitorizar servicios de ingresos pasivos desde una unica interfaz web. En lugar de configurar manualmente docenas de contenedores Docker, CashPilot lo gestiona todo desde un solo lugar. + pt_PT: | + CashPilot e uma plataforma auto-hospedada para implantar, gerenciar e monitorar servicos de renda passiva a partir de uma unica interface web. + it_IT: | + CashPilot e una piattaforma self-hosted per distribuire, gestire e monitorare servizi di reddito passivo da un'unica interfaccia web. + ja_JP: | + CashPilotは、単一のWebインターフェースからパッシブインカムサービスをデプロイ、管理、監視するためのセルフホスト型プラットフォームです。 + ko_KR: | + CashPilot은 단일 웹 인터페이스에서 수동 소득 서비스를 배포, 관리 및 모니터링하기 위한 셀프 호스팅 플랫폼입니다. + tagline: + en_US: Self-hosted passive income orchestrator + zh_CN: 自托管被动收入编排器 + title: + en_US: CashPilot + tips: + before_install: + en_US: | + The worker container requires access to the Docker socket to deploy and manage passive income service containers. + + After installation, open the web UI and follow the setup wizard to configure your first services. + index: / + port_map: "8080" + scheme: http diff --git a/Apps/CashPilot/icon.png b/Apps/CashPilot/icon.png new file mode 100644 index 000000000..4a54e9ddf Binary files /dev/null and b/Apps/CashPilot/icon.png differ diff --git a/Apps/CashPilot/screenshot-1.png b/Apps/CashPilot/screenshot-1.png new file mode 100644 index 000000000..61e48d5be Binary files /dev/null and b/Apps/CashPilot/screenshot-1.png differ diff --git a/Apps/GenieACS/docker-compose.yml b/Apps/GenieACS/docker-compose.yml new file mode 100644 index 000000000..97c426440 --- /dev/null +++ b/Apps/GenieACS/docker-compose.yml @@ -0,0 +1,178 @@ +name: genieacs + +services: + genieacs: + image: drumsergio/genieacs:1.2.16.0 + container_name: genieacs + deploy: + resources: + reservations: + memory: 512M + restart: unless-stopped + ports: + - target: 3000 + published: "3000" + protocol: tcp + - target: 7547 + published: "7547" + protocol: tcp + - target: 7557 + published: "7557" + protocol: tcp + - target: 7567 + published: "7567" + protocol: tcp + volumes: + - type: bind + source: /DATA/AppData/$AppID/ext + target: /opt/genieacs/ext + - type: bind + source: /DATA/AppData/$AppID/logs + target: /var/log/genieacs + environment: + GENIEACS_UI_JWT_SECRET: changeme + GENIEACS_MONGODB_CONNECTION_URL: mongodb://genieacs-db/genieacs + GENIEACS_CWMP_ACCESS_LOG_FILE: /var/log/genieacs/genieacs-cwmp-access.log + GENIEACS_NBI_ACCESS_LOG_FILE: /var/log/genieacs/genieacs-nbi-access.log + GENIEACS_FS_ACCESS_LOG_FILE: /var/log/genieacs/genieacs-fs-access.log + GENIEACS_UI_ACCESS_LOG_FILE: /var/log/genieacs/genieacs-ui-access.log + GENIEACS_DEBUG_FILE: /var/log/genieacs/genieacs-debug.yaml + GENIEACS_EXT_DIR: /opt/genieacs/ext + networks: + - genieacs-network + depends_on: + genieacs-db: + condition: service_healthy + healthcheck: + test: ["CMD", "wget", "--spider", "--quiet", "http://localhost:3000"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 60s + x-casaos: + envs: + - container: GENIEACS_UI_JWT_SECRET + description: + en_US: JWT secret for the web UI (change this!) + - container: GENIEACS_MONGODB_CONNECTION_URL + description: + en_US: MongoDB connection URL + - container: GENIEACS_EXT_DIR + description: + en_US: Directory for GenieACS extensions + ports: + - container: "3000" + description: + en_US: Web UI Port + - container: "7547" + description: + en_US: CWMP (TR-069) Port + - container: "7557" + description: + en_US: NBI (Northbound Interface) Port + - container: "7567" + description: + en_US: File Server Port + volumes: + - container: /opt/genieacs/ext + description: + en_US: GenieACS extensions directory + - container: /var/log/genieacs + description: + en_US: Log files directory + + genieacs-db: + image: mongo:8.0 + container_name: genieacs-db + deploy: + resources: + reservations: + memory: 512M + restart: unless-stopped + volumes: + - type: bind + source: /DATA/AppData/$AppID/mongodb/db + target: /data/db + - type: bind + source: /DATA/AppData/$AppID/mongodb/configdb + target: /data/configdb + networks: + - genieacs-network + healthcheck: + test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 40s + x-casaos: + volumes: + - container: /data/db + description: + en_US: MongoDB data directory + - container: /data/configdb + description: + en_US: MongoDB config directory + +networks: + genieacs-network: + name: genieacs-network + +x-casaos: + architectures: + - amd64 + - arm64 + main: genieacs + store_app_id: genieacs + category: Network + author: GeiserX + developer: GenieACS + icon: https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/GenieACS/icon.png + screenshot_link: + - https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/GenieACS/screenshot-1.png + thumbnail: "" + description: + en_US: | + GenieACS is an open-source Auto Configuration Server (ACS) for remote management of customer-premises equipment (CPE) via the TR-069 protocol. + + It allows ISPs and network administrators to remotely configure, monitor, and troubleshoot routers, modems, gateways, and other network devices. Features include device provisioning, firmware management, diagnostics, and a powerful virtual parameters engine. + + This Docker image bundles all four GenieACS services (CWMP, NBI, FS, UI) in a single container alongside a MongoDB database. + zh_CN: | + GenieACS 是一个开源的自动配置服务器 (ACS),用于通过 TR-069 协议远程管理客户端设备 (CPE)。 + + 它允许 ISP 和网络管理员远程配置、监控和排除路由器、调制解调器、网关等网络设备的故障。功能包括设备配置、固件管理、诊断和强大的虚拟参数引擎。 + de_DE: | + GenieACS ist ein Open-Source Auto Configuration Server (ACS) fuer die Fernverwaltung von Kundengeraeten (CPE) ueber das TR-069-Protokoll. Es ermoeglicht ISPs und Netzwerkadministratoren, Router, Modems und Gateways fernzukonfigurieren und zu ueberwachen. + fr_FR: | + GenieACS est un serveur de configuration automatique (ACS) open source pour la gestion a distance des equipements client (CPE) via le protocole TR-069. + es_ES: | + GenieACS es un servidor de configuracion automatica (ACS) de codigo abierto para la gestion remota de equipos de cliente (CPE) a traves del protocolo TR-069. + pt_PT: | + GenieACS e um servidor de configuracao automatica (ACS) de codigo aberto para gerenciamento remoto de equipamentos de cliente (CPE) via protocolo TR-069. + it_IT: | + GenieACS e un server di configurazione automatica (ACS) open source per la gestione remota delle apparecchiature del cliente (CPE) tramite il protocollo TR-069. + ja_JP: | + GenieACSは、TR-069プロトコルを介して顧客構内機器(CPE)をリモート管理するためのオープンソース自動構成サーバー(ACS)です。 + ko_KR: | + GenieACS는 TR-069 프로토콜을 통해 고객 구내 장비(CPE)를 원격으로 관리하기 위한 오픈소스 자동 구성 서버(ACS)입니다. + tagline: + en_US: Open-source TR-069 remote device management + zh_CN: 开源 TR-069 远程设备管理 + title: + en_US: GenieACS + tips: + before_install: + en_US: | + GenieACS exposes four network services: + + | Port | Service | Description | + |------|---------|-------------| + | 3000 | Web UI | Administration interface | + | 7547 | CWMP | TR-069 endpoint for CPE devices | + | 7557 | NBI | Northbound API for integrations | + | 7567 | FS | File server for firmware uploads | + + Point your routers/modems ACS URL to `http://:7547`. + index: / + port_map: "3000" + scheme: http diff --git a/Apps/GenieACS/icon.png b/Apps/GenieACS/icon.png new file mode 100644 index 000000000..a2d1e9905 Binary files /dev/null and b/Apps/GenieACS/icon.png differ diff --git a/Apps/GenieACS/screenshot-1.png b/Apps/GenieACS/screenshot-1.png new file mode 100644 index 000000000..8cfc5b9a3 Binary files /dev/null and b/Apps/GenieACS/screenshot-1.png differ diff --git a/Apps/LynxPrompt/docker-compose.yml b/Apps/LynxPrompt/docker-compose.yml new file mode 100644 index 000000000..b58f36911 --- /dev/null +++ b/Apps/LynxPrompt/docker-compose.yml @@ -0,0 +1,158 @@ +name: lynxprompt + +services: + lynxprompt: + image: drumsergio/lynxprompt:2.0.75 + container_name: lynxprompt + deploy: + resources: + reservations: + memory: 512M + restart: unless-stopped + ports: + - target: 3000 + published: "3100" + protocol: tcp + environment: + DB_APP_HOST: lynxprompt-db + DB_APP_USER: lynxprompt + DB_APP_PASSWORD: changeme + DB_APP_NAME: lynxprompt + DB_USERS_HOST: lynxprompt-db + DB_USERS_USER: lynxprompt + DB_USERS_PASSWORD: changeme + DB_USERS_NAME: lynxprompt + DB_BLOG_HOST: lynxprompt-db + DB_BLOG_USER: lynxprompt + DB_BLOG_PASSWORD: changeme + DB_BLOG_NAME: lynxprompt + DB_SUPPORT_HOST: lynxprompt-db + DB_SUPPORT_USER: lynxprompt + DB_SUPPORT_PASSWORD: changeme + DB_SUPPORT_NAME: lynxprompt + NEXTAUTH_SECRET: changeme-generate-with-openssl-rand-base64-32 + NEXTAUTH_URL: http://localhost:3100 + APP_URL: http://localhost:3100 + NODE_ENV: production + networks: + - lynxprompt-network + depends_on: + lynxprompt-db: + condition: service_healthy + x-casaos: + envs: + - container: DB_APP_PASSWORD + description: + en_US: Database password (must match PostgreSQL password below) + - container: NEXTAUTH_SECRET + description: + en_US: "Authentication secret (generate with: openssl rand -base64 32)" + - container: NEXTAUTH_URL + description: + en_US: "Full URL of your LynxPrompt instance (e.g. http://your-casaos-ip:3100)" + - container: APP_URL + description: + en_US: "Application URL (same as NEXTAUTH_URL)" + ports: + - container: "3000" + description: + en_US: Web UI Port + volumes: [] + + lynxprompt-db: + image: postgres:17-alpine + container_name: lynxprompt-db + deploy: + resources: + reservations: + memory: 256M + restart: unless-stopped + volumes: + - type: bind + source: /DATA/AppData/$AppID/pgdata + target: /var/lib/postgresql/data + environment: + POSTGRES_DB: lynxprompt + POSTGRES_USER: lynxprompt + POSTGRES_PASSWORD: changeme + networks: + - lynxprompt-network + healthcheck: + test: ["CMD-SHELL", "pg_isready -U lynxprompt -d lynxprompt"] + interval: 5s + timeout: 5s + retries: 5 + x-casaos: + envs: + - container: POSTGRES_PASSWORD + description: + en_US: PostgreSQL Password (must match DB_APP_PASSWORD above) + - container: POSTGRES_USER + description: + en_US: PostgreSQL User + - container: POSTGRES_DB + description: + en_US: PostgreSQL Database Name + volumes: + - container: /var/lib/postgresql/data + description: + en_US: PostgreSQL data directory + +networks: + lynxprompt-network: + name: lynxprompt-network + +x-casaos: + architectures: + - amd64 + - arm64 + main: lynxprompt + store_app_id: lynxprompt + category: Developer + author: GeiserX + developer: GeiserX + icon: https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/LynxPrompt/icon.png + screenshot_link: + - https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/LynxPrompt/screenshot-1.png + thumbnail: "" + description: + en_US: | + LynxPrompt is a self-hosted platform for managing AI IDE rules and commands. It provides a universal configuration hub for tools like Cursor, Claude Code, GitHub Copilot, Windsurf, Aider, and 20+ other AI coding assistants. + + Create, share, and discover configuration blueprints through a web interface or CLI. Features include template variables for dynamic configurations, a blueprint marketplace, and instant project bootstrapping. + + Self-host your own instance to keep your AI configurations private and under your control. + zh_CN: | + LynxPrompt 是一个自托管平台,用于管理 AI IDE 规则和命令。它为 Cursor、Claude Code、GitHub Copilot、Windsurf、Aider 等 20 多种 AI 编码助手提供通用配置中心。 + + 通过 Web 界面或 CLI 创建、分享和发现配置蓝图。功能包括模板变量、蓝图市场和即时项目引导。 + de_DE: | + LynxPrompt ist eine selbst gehostete Plattform zur Verwaltung von AI-IDE-Regeln und -Befehlen. Es bietet einen universellen Konfigurationshub fuer Cursor, Claude Code, GitHub Copilot und 20+ weitere AI-Codierungsassistenten. + fr_FR: | + LynxPrompt est une plateforme auto-hebergee pour gerer les regles et commandes des IDE IA. Elle fournit un hub de configuration universel pour Cursor, Claude Code, GitHub Copilot et plus de 20 assistants de codage IA. + es_ES: | + LynxPrompt es una plataforma autoalojada para gestionar reglas y comandos de IDEs con IA. Proporciona un centro de configuracion universal para Cursor, Claude Code, GitHub Copilot y mas de 20 asistentes de codificacion con IA. + pt_PT: | + LynxPrompt e uma plataforma auto-hospedada para gerenciar regras e comandos de IDEs com IA, oferecendo um hub de configuracao universal para mais de 20 assistentes de codificacao. + it_IT: | + LynxPrompt e una piattaforma self-hosted per gestire regole e comandi degli IDE AI, fornendo un hub di configurazione universale per oltre 20 assistenti di codifica AI. + ja_JP: | + LynxPromptは、AI IDEのルールとコマンドを管理するためのセルフホスト型プラットフォームです。Cursor、Claude Code、GitHub Copilotなど20以上のAIコーディングアシスタントに対応しています。 + ko_KR: | + LynxPrompt는 AI IDE 규칙과 명령을 관리하기 위한 셀프 호스팅 플랫폼입니다. Cursor, Claude Code, GitHub Copilot 등 20개 이상의 AI 코딩 어시스턴트를 지원합니다. + tagline: + en_US: Self-hosted AI IDE configuration hub + zh_CN: 自托管 AI IDE 配置中心 + title: + en_US: LynxPrompt + tips: + before_install: + en_US: | + After installation, you must change the default passwords: + 1. Set `NEXTAUTH_SECRET` to a secure random value (generate with `openssl rand -base64 32`) + 2. Change `DB_APP_PASSWORD` and `POSTGRES_PASSWORD` to the same secure value + + Update `NEXTAUTH_URL` and `APP_URL` to match your CasaOS IP (e.g. `http://192.168.1.100:3100`). + index: / + port_map: "3100" + scheme: http diff --git a/Apps/LynxPrompt/icon.png b/Apps/LynxPrompt/icon.png new file mode 100644 index 000000000..fba385a6b Binary files /dev/null and b/Apps/LynxPrompt/icon.png differ diff --git a/Apps/LynxPrompt/screenshot-1.png b/Apps/LynxPrompt/screenshot-1.png new file mode 100644 index 000000000..f0df3c9bb Binary files /dev/null and b/Apps/LynxPrompt/screenshot-1.png differ diff --git a/Apps/Pumperly/docker-compose.yml b/Apps/Pumperly/docker-compose.yml new file mode 100644 index 000000000..3adf4bb87 --- /dev/null +++ b/Apps/Pumperly/docker-compose.yml @@ -0,0 +1,141 @@ +name: pumperly + +services: + pumperly: + image: drumsergio/pumperly:1.2.0 + container_name: pumperly + deploy: + resources: + reservations: + memory: 512M + restart: unless-stopped + ports: + - target: 3000 + published: "3000" + protocol: tcp + environment: + DATABASE_URL: postgresql://pumperly:changeme@pumperly-db:5432/pumperly + PUMPERLY_DEFAULT_COUNTRY: ES + TZ: $TZ + networks: + - pumperly-network + depends_on: + pumperly-db: + condition: service_healthy + x-casaos: + envs: + - container: DATABASE_URL + description: + en_US: PostgreSQL connection string + - container: PUMPERLY_DEFAULT_COUNTRY + description: + en_US: "Default country ISO code for initial map view (e.g. ES, FR, DE, IT, GB)" + - container: TZ + description: + en_US: Timezone + ports: + - container: "3000" + description: + en_US: Web UI Port + volumes: [] + + pumperly-db: + image: postgis/postgis:16-3.4-alpine + container_name: pumperly-db + deploy: + resources: + reservations: + memory: 256M + restart: unless-stopped + volumes: + - type: bind + source: /DATA/AppData/$AppID/pgdata + target: /var/lib/postgresql/data + environment: + POSTGRES_USER: pumperly + POSTGRES_PASSWORD: changeme + POSTGRES_DB: pumperly + networks: + - pumperly-network + healthcheck: + test: ["CMD-SHELL", "pg_isready -U pumperly -d pumperly"] + interval: 5s + timeout: 5s + retries: 5 + x-casaos: + envs: + - container: POSTGRES_USER + description: + en_US: PostgreSQL User + - container: POSTGRES_PASSWORD + description: + en_US: PostgreSQL Password + - container: POSTGRES_DB + description: + en_US: PostgreSQL Database Name + volumes: + - container: /var/lib/postgresql/data + description: + en_US: PostgreSQL data directory + +networks: + pumperly-network: + name: pumperly-network + +x-casaos: + architectures: + - amd64 + - arm64 + main: pumperly + store_app_id: pumperly + category: Utilities + author: GeiserX + developer: GeiserX + icon: https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/Pumperly/icon.png + screenshot_link: + - https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/Pumperly/screenshot-1.png + - https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/Pumperly/screenshot-2.png + thumbnail: "" + description: + en_US: | + Pumperly combines route planning with real-time fuel prices and EV charging station data across 36 countries. No other open-source tool does this. + + Plan a route from A to B, see every fuel station and EV charger along the corridor, and filter by "cheapest within N minutes detour." Covers Europe, Latin America, and Oceania with 16 languages and multi-currency support. + + This CasaOS deployment includes the app and PostGIS database. Route planning (Valhalla) and geocoding (Photon) are optional external services that can be added separately for full functionality. + zh_CN: | + Pumperly 将路线规划与 36 个国家的实时燃油价格和电动汽车充电站数据相结合。 + + 规划从 A 到 B 的路线,查看沿途走廊中的每个加油站和充电站,并按"最便宜的 N 分钟绕行"进行筛选。覆盖欧洲、拉丁美洲和大洋洲,支持 16 种语言和多种货币。 + de_DE: | + Pumperly kombiniert Routenplanung mit Echtzeit-Kraftstoffpreisen und Ladestationsdaten fuer Elektrofahrzeuge in 36 Laendern. + fr_FR: | + Pumperly combine la planification d'itineraires avec les prix des carburants en temps reel et les donnees des bornes de recharge dans 36 pays. + es_ES: | + Pumperly combina la planificacion de rutas con precios de combustible en tiempo real y datos de estaciones de carga de vehiculos electricos en 36 paises. + pt_PT: | + Pumperly combina planejamento de rotas com precos de combustivel em tempo real e dados de estacoes de carregamento de veiculos eletricos em 36 paises. + it_IT: | + Pumperly combina la pianificazione dei percorsi con i prezzi del carburante in tempo reale e i dati delle stazioni di ricarica per veicoli elettrici in 36 paesi. + ja_JP: | + Pumperlyは、36カ国のリアルタイム燃料価格とEV充電ステーションデータを組み合わせたルートプランニングツールです。 + ko_KR: | + Pumperly는 36개국의 실시간 연료 가격과 EV 충전소 데이터를 결합한 경로 계획 도구입니다. + tagline: + en_US: Open-source fuel and EV route planner for 36 countries + zh_CN: 覆盖 36 个国家的开源燃油和电动汽车路线规划器 + title: + en_US: Pumperly + tips: + before_install: + en_US: | + Before starting, change the default password (`changeme`) in both `DATABASE_URL` and `POSTGRES_PASSWORD` to the same secure value. + + Pumperly scrapes fuel prices from government APIs on startup. Station data populates automatically. + + For route planning and address autocomplete, you can optionally deploy Valhalla and Photon as separate containers and set the `VALHALLA_URL` and `PHOTON_URL` environment variables. Without them, Pumperly still shows fuel stations on a map with prices. + + Change `PUMPERLY_DEFAULT_COUNTRY` to your country code (e.g. FR, DE, IT, GB). + index: / + port_map: "3000" + scheme: http diff --git a/Apps/Pumperly/icon.png b/Apps/Pumperly/icon.png new file mode 100644 index 000000000..384bcfee9 Binary files /dev/null and b/Apps/Pumperly/icon.png differ diff --git a/Apps/Pumperly/screenshot-1.png b/Apps/Pumperly/screenshot-1.png new file mode 100644 index 000000000..db6e83143 Binary files /dev/null and b/Apps/Pumperly/screenshot-1.png differ diff --git a/Apps/Pumperly/screenshot-2.png b/Apps/Pumperly/screenshot-2.png new file mode 100644 index 000000000..238c03f1f Binary files /dev/null and b/Apps/Pumperly/screenshot-2.png differ