From 45790cc976cc7fd9c56b9853125ec25738cb3e9a Mon Sep 17 00:00:00 2001 From: pooneyy <85266337+pooneyy@users.noreply.github.com> Date: Tue, 20 Jan 2026 04:21:24 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(rallly):=20add=20new=20applica?= =?UTF-8?q?tion=20package=20for=20version=204.6.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - add new application package for Rallly version 4.6.3 - include docker-compose.yml, config.env template, and initialization script - add multilingual README files (zh and en) and application metadata - add application logo and top-level data.yml for app store listing --- apps/rallly/4.6.3/config.env | 27 +++ apps/rallly/4.6.3/data.yml | 314 +++++++++++++++++++++++++++ apps/rallly/4.6.3/docker-compose.yml | 28 +++ apps/rallly/4.6.3/scripts/init.sh | 10 + apps/rallly/README.md | 15 ++ apps/rallly/README_en.md | 15 ++ apps/rallly/data.yml | 30 +++ apps/rallly/logo.png | Bin 0 -> 2746 bytes 8 files changed, 439 insertions(+) create mode 100644 apps/rallly/4.6.3/config.env create mode 100644 apps/rallly/4.6.3/data.yml create mode 100644 apps/rallly/4.6.3/docker-compose.yml create mode 100644 apps/rallly/4.6.3/scripts/init.sh create mode 100644 apps/rallly/README.md create mode 100644 apps/rallly/README_en.md create mode 100644 apps/rallly/data.yml create mode 100644 apps/rallly/logo.png diff --git a/apps/rallly/4.6.3/config.env b/apps/rallly/4.6.3/config.env new file mode 100644 index 000000000..f2a90d1b1 --- /dev/null +++ b/apps/rallly/4.6.3/config.env @@ -0,0 +1,27 @@ +# REQUIRED CONFIG + +# A random 32-character secret key used to encrypt user sessions +SECRET_PASSWORD= + +# EMAIL CONFIG (required for sending emails) + +# The email address that will be used to send emails. If not set, SUPPORT_EMAIL will be used instead. +# NOREPLY_EMAIL= + +# The email of whoever is managing this instance in case a user needs support. +SUPPORT_EMAIL= + +# The host address of your SMTP server +SMTP_HOST= + +# The port of your SMTP server +SMTP_PORT=587 + +# Set to "true" if SSL is enabled for your SMTP connection +SMTP_SECURE= + +# The username (if auth is enabled on your SMTP server) +SMTP_USER= + +# The password (if auth is enabled on your SMTP server) +SMTP_PWD= diff --git a/apps/rallly/4.6.3/data.yml b/apps/rallly/4.6.3/data.yml new file mode 100644 index 000000000..a01f949c1 --- /dev/null +++ b/apps/rallly/4.6.3/data.yml @@ -0,0 +1,314 @@ +additionalProperties: + formFields: + - default: 8080 + envKey: PANEL_APP_PORT_HTTP + labelZh: HTTP 端口 + labelEn: HTTP Port + label: + zh: HTTP 端口 + zh-Hant: HTTP 連接埠 + en: HTTP Port + ja: HTTP ポート + ko: HTTP 포트 + ms: Port HTTP + pt-br: Porta HTTP + ru: HTTP Порт + tr: HTTP Portu + description: + zh: "设置应用的 HTTP 访问端口,有效范围: 1-65535" + zh-Hant: "設定應用程式的 HTTP 存取連接埠,有效範圍: 1-65535" + en: "Set the HTTP access port for the application, valid range: 1-65535" + ja: "アプリケーションのHTTPアクセスポートを設定します。有効範囲: 1-65535" + ko: "애플리케이션의 HTTP 접근 포트를 설정합니다. 유효 범위: 1-65535" + ms: "Tetapkan port akses HTTP untuk aplikasi, julat sah: 1-65535" + pt-br: "Defina a porta de acesso HTTP para o aplicativo, intervalo válido: 1-65535" + ru: "Установите порт доступа HTTP для приложения, допустимый диапазон: 1-65535" + tr: "Uygulama için HTTP erişim portunu ayarlayın, geçerli aralık: 1-65535" + required: true + type: number + edit: true + rule: paramPort + - default: "" + envKey: PANEL_DB_HOST + labelZh: 数据库 + labelEn: Database + label: + zh: 数据库 + zh-Hant: 資料庫 + en: Database + ja: データベース + ko: 데이터베이스 + ms: Pangkalan Data + pt-br: Banco de Dados + ru: База данных + tr: Veritabanı + required: true + type: service + edit: true + key: postgres + - default: rallly_db_user + envKey: PANEL_DB_USER + labelZh: 数据库用户名 + labelEn: Database Username + label: + zh: 数据库用户名 + zh-Hant: 資料庫使用者名稱 + en: Database Username + ja: データベースユーザー名 + ko: 데이터베이스 사용자 이름 + ms: Nama Pengguna Pangkalan Data + pt-br: Nome de Usuário do Banco de Dados + ru: Имя пользователя базы данных + tr: Veritabanı Kullanıcı Adı + required: true + type: text + edit: true + rule: paramCommon + random: true + - default: rallly_db_pass + envKey: PANEL_DB_USER_PASSWORD + labelZh: 数据库密码 + labelEn: Database Password + label: + zh: 数据库密码 + zh-Hant: 資料庫密碼 + en: Database Password + ja: データベースパスワード + ko: 데이터베이스 비밀번호 + ms: Kata Laluan Pangkalan Data + pt-br: Senha do Banco de Dados + ru: Пароль базы данных + tr: Veritabanı Parolası + required: true + type: password + edit: true + rule: paramComplexity + random: true + - default: rallly_db_name + envKey: PANEL_DB_NAME + labelZh: 数据库名 + labelEn: Database Name + label: + zh: 数据库名 + zh-Hant: 資料庫名稱 + en: Database Name + ja: データベース名 + ko: 데이터베이스 이름 + ms: Nama Pangkalan Data + pt-br: Nome do Banco de Dados + ru: Имя базы данных + tr: Veritabanı Adı + required: true + type: text + edit: true + rule: paramCommon + random: true + - default: http://localhost:8080 + envKey: BASE_URL + labelZh: 访问地址 + labelEn: Access URL + label: + zh: 访问地址 + zh-Hant: 訪問地址 + en: Access URL + ja: アクセスURL + ko: 접근 URL + ms: URL Akses + pt-br: URL de Acesso + ru: URL доступа + tr: Erişim URL'si + description: + zh: 可访问此实例的基础 URL,包括协议(例如 http://)、域名,以及可选的端口号。不要使用尾随斜杠或包含路径/子文件夹的 URL。 + zh-Hant: 此實例可被訪問的基礎URL,需包含協定(例如 http://)、網域名稱及可選的埠號。不要使用末尾的斜槓或包含路徑/子資料夾的URL。 + en: The base URL where this instance is accessible, including the scheme (eg. http://), the domain name, and optionally a port. Do not use trailing slashes or URLs with paths/subfolders. + ja: このインスタンスがアクセス可能なベースURL。スキーム(例:http://)、ドメイン名、およびオプションでポートを含めてください。末尾のスラッシュやパス/サブフォルダを含むURLは使用しないでください。 + ko: "이 인스턴스에 액세스할 수 있는 기본 URL입니다. 스킴(예: http://), 도메인 이름 및 선택적으로 포트를 포함하십시오. 마지막 슬래시나 경로/하위 폴더가 포함된 URL을 사용하지 마십시오." + ms: URL asas di mana contoh ini boleh diakses, termasuk skema (cth. http://), nama domain, dan secara pilihan port. Jangan gunakan garis miring di akhir atau URL dengan laluan/subfolder. + pt-br: "A URL base onde esta instância está acessível, incluindo o esquema (ex.: http://), o nome de domínio e opcionalmente uma porta. Não use barras finais ou URLs com caminhos/subpastas." + ru: Базовый URL-адрес, по которому доступен этот экземпляр, включая схему (напр., http://), имя домена и, при необходимости, порт. Не используйте завершающие косые черты или URL-адреса с путями/подпапками. + tr: Bu örneğin erişilebilir olduğu temel URL, şema (örn. http://), alan adı ve isteğe bağlı bir port dahil. Son eğik çizgi veya yol/alt klasör içeren URL'ler kullanmayın. + required: true + type: text + edit: true + - default: john@example.com,*@gmail.com,*@qq.com + envKey: ALLOWED_EMAILS + labelZh: 电子邮箱白名单 + labelEn: Email Allowlist + label: + zh: 电子邮箱白名单 + zh-Hant: 電子信箱白名單 + en: Email Allowlist + ja: メールホワイトリスト + ko: 이메일 화이트리스트 + ms: Senarai Putih E-mel + pt-br: Lista Branca de E-mail + ru: Белый список электронной почты + tr: E-posta Beyaz Listesi + description: + zh: 白名单内才可以注册。可以是某个具体的邮件地址,或者通配符,多个邮箱用逗号分隔 + zh-Hant: 白名單內才可以註冊。可以是某個具體的郵件地址,或者萬用字元,多個信箱用逗號分隔。 + en: Only email addresses within the whitelist can register. It can be a specific email address, or a wildcard; multiple addresses should be separated by commas. + ja: ホワイトリストに登録されているメールアドレスのみ登録可能です。特定のメールアドレス、またはワイルドカードを使用でき、複数のアドレスはカンマで区切ります。 + ko: 화이트리스트에 등록된 이메일 주소만 가입할 수 있습니다. 특정 이메일 주소나 와일드카드를 사용할 수 있으며, 여러 주소는 쉼표로 구분합니다. + ms: Hanya alamat e-mel dalam senarai putih yang boleh mendaftar. Ia boleh berupa alamat e-mel tertentu, atau aksara wildcard; pelbagai alamat hendaklah dipisahkan dengan koma. + pt-br: Apenas endereços de e-mail dentro da lista branca podem se registrar. Pode ser um endereço de e-mail específico ou um caractere curinga; múltiplos endereços devem ser separados por vírgulas. + ru: Регистрация доступна только для адресов электронной почты из белого списка. Это может быть конкретный адрес электронной почты или подстановочный знак; несколько адресов следует разделять запятыми. + tr: Yalnızca beyaz listedeki e-posta adresleri kayıt olabilir. Belirli bir e-posta adresi veya joker karakter olabilir; birden fazla adres virgülle ayrılmalıdır. + required: false + type: text + edit: true + - default: "" + envKey: INITIAL_ADMIN_EMAIL + labelZh: 初始管理员邮箱 + labelEn: Initial Admin Email + label: + zh: 初始管理员邮箱 + zh-Hant: 初始管理員信箱 + en: Initial Admin Email + ja: 初期管理者メールアドレス + ko: 초기 관리자 이메일 + ms: E-mel Admin Awal + pt-br: E-mail de Administrador Inicial + ru: Электронная почта начального администратора + tr: Başlangıç Yönetici E-postası + description: + zh: 注意,这并不会为你创建一个初始账户,而是你用此邮箱注册时将会获得管理员权限。 + zh-Hant: 注意,這並不會為你建立一個初始帳戶,而是你用此信箱註冊時將會獲得管理員權限。 + en: "Note: This will not create an initial account for you. Instead, when you register using this email, you will be granted administrator privileges." + ja: 注意:これにより初期アカウントが自動的に作成されるわけではありません。このメールアドレスで登録した場合に、管理者権限が付与されます。 + ko: "참고: 이 설정으로 초기 계정이 자동 생성되지는 않습니다. 대신 이 이메일로 등록할 경우 관리자 권한이 부여됩니다." + ms: "Perhatian: Ini tidak akan mencipta akaun awal untuk anda. Sebaliknya, apabila anda mendaftar menggunakan e-mel ini, anda akan diberikan keistimewaan pentadbir." + pt-br: "Observação: Isso não criará uma conta inicial para você. Em vez disso, ao se registrar usando este e-mail, você receberá privilégios de administrador." + ru: "Примечание: это не создаст для вас первоначальную учётную запись. Вместо этого при регистрации с использованием этого адреса электронной почты вам будут предоставлены права администратора." + tr: "Not: Bu, sizin için bir başlangıç hesabı oluşturmayacaktır. Bunun yerine, bu e-postayı kullanarak kayıt olduğunuzda, yönetici ayrıcalıkları verilecektir." + required: true + type: text + edit: true + - default: "" + envKey: SUPPORT_EMAIL + labelZh: 支持邮箱 + labelEn: Support Email + label: + zh: 支持邮箱 + zh-Hant: 支援信箱 + en: Support Email + ja: サポートメール + ko: 지원 이메일 + ms: E-mel Sokongan + pt-br: E-mail de Suporte + ru: Электронная почта поддержки + tr: Destek E-postası + description: + zh: 您的用户将在需要支持时看到此邮箱作为联系邮箱,同时它也将作为所有系统邮件的发件人地址显示。 + zh-Hant: 您的使用者將在需要支援時看到此信箱作為聯絡信箱,同時它也將作為所有系統信件的寄件人地址顯示。 + en: Your users will see this as the contact email for any support issues, and it will also appear as the sender address for all system emails. + ja: ユーザーはサポートが必要な際の連絡先としてこのメールアドレスを確認でき、また全てのシステムメールの差出人アドレスとして表示されます。 + ko: 사용자는 지원 문제 발생 시 연락처로 이 이메일을 확인하게 되며, 모든 시스템 이메일의 발신자 주소로도 표시됩니다. + ms: Pengguna anda akan melihat ini sebagai e-mel hubungan untuk sebarang isu sokongan, dan ia juga akan muncul sebagai alamat penghantar untuk semua e-mel sistem. + pt-br: Seus usuários verão este e-mail como o contato para quaisquer problemas de suporte, e ele também aparecerá como o endereço do remetente de todos os e-mails do sistema. + ru: Ваши пользователи увидят этот адрес электронной почты в качестве контактного для любых вопросов поддержки, и он также будет отображаться в качестве адреса отправителя для всех системных писем. + tr: Kullanıcılarınız, destek sorunları için iletişim e-postası olarak bunu görecek ve aynı zamanda tüm sistem e-postalarının gönderen adresi olarak görünecektir. + required: true + type: text + edit: true + - default: "" + envKey: SMTP_USER + labelZh: SMTP 用户名 + labelEn: SMTP User + label: + zh: SMTP 用户名 + zh-Hant: SMTP 使用者名稱 + en: SMTP User + ja: SMTPユーザー + ko: SMTP 사용자 + ms: Pengguna SMTP + pt-br: Usuário SMTP + ru: Пользователь SMTP + tr: SMTP Kullanıcısı + required: true + type: text + edit: true + - default: "" + envKey: SMTP_PWD + labelZh: SMTP 密码 + labelEn: SMTP Password + label: + zh: SMTP 密码 + zh-Hant: SMTP 密碼 + en: SMTP Password + ja: SMTPパスワード + ko: SMTP 비밀번호 + ms: Kata Laluan SMTP + pt-br: Senha SMTP + ru: Пароль SMTP + tr: SMTP Parolası + required: true + type: text + edit: true + - default: "" + envKey: SMTP_HOST + labelZh: SMTP 服务器地址 + labelEn: SMTP Server Address + label: + zh: SMTP 服务器地址 + zh-Hant: SMTP 伺服器位址 + en: SMTP Server Address + ja: SMTPサーバーアドレス + ko: SMTP 서버 주소 + ms: Alamat Pelayan SMTP + pt-br: Endereço do Servidor SMTP + ru: Адрес SMTP-сервера + tr: SMTP Sunucu Adresi + required: true + type: text + edit: true + - default: 587 + envKey: SMTP_PORT + labelZh: SMTP 端口 + labelEn: SMTP Port + label: + zh: SMTP 端口 + zh-Hant: SMTP 通訊埠 + en: SMTP Port + ja: SMTPポート + ko: SMTP 포트 + ms: Port SMTP + pt-br: Porta SMTP + ru: Порт SMTP + tr: SMTP Bağlantı Noktası + required: true + type: number + edit: true + rule: paramPort + - default: "true" + envKey: SMTP_SECURE + labelZh: SMTP 安全开关 + labelEn: SMTP Security + label: + zh: SMTP 安全开关 + zh-Hant: SMTP 安全開關 + en: SMTP Security + ja: SMTPセキュリティ + ko: SMTP 보안 + ms: Keselamatan SMTP + pt-br: Segurança SMTP + ru: Безопасность SMTP + tr: SMTP Güvenlik + description: + zh: 如果您的 SMTP 连接启用了 SSL,请设置为 "true" + zh-Hant: 如果您的 SMTP 連線啟用了 SSL,請設定為 "true" + en: Set to "true" if SSL is enabled for your SMTP connection + ja: SMTP接続でSSLが有効な場合は "true" に設定してください + ko: SMTP 연결에 SSL이 활성화된 경우 "true"로 설정하세요 + ms: Tetapkan kepada "true" jika SSL didayakan untuk sambungan SMTP anda + pt-br: Defina como "true" se o SSL estiver ativado para sua conexão SMTP + ru: Установите значение "true", если для вашего SMTP-соединения включен SSL + tr: SMTP bağlantınız için SSL etkinse "true" olarak ayarlayın + required: true + type: select + edit: true + values: + - label: "True" + value: "true" + - label: "False" + value: "false" diff --git a/apps/rallly/4.6.3/docker-compose.yml b/apps/rallly/4.6.3/docker-compose.yml new file mode 100644 index 000000000..83c11584a --- /dev/null +++ b/apps/rallly/4.6.3/docker-compose.yml @@ -0,0 +1,28 @@ +services: + rallly: + image: lukevella/rallly:4.6.3 + restart: always + ports: + - ${PANEL_APP_PORT_HTTP}:3000 + environment: + - SECRET_PASSWORD=${SECRET_PASSWORD} + - DATABASE_URL=postgres://${PANEL_DB_USER}:${PANEL_DB_USER_PASSWORD}@${PANEL_DB_HOST}/${PANEL_DB_NAME} + - NEXT_PUBLIC_BASE_URL=${BASE_URL} + - ALLOWED_EMAILS=${ALLOWED_EMAILS} + - INITIAL_ADMIN_EMAIL=${INITIAL_ADMIN_EMAIL} + - SUPPORT_EMAIL=${SUPPORT_EMAIL} + - SMTP_HOST=${SMTP_HOST} + - SMTP_PORT=${SMTP_PORT} + - SMTP_SECURE=${SMTP_SECURE} + - SMTP_USER=${SMTP_USER} + - SMTP_PWD=${SMTP_PWD} + env_file: + - config.env + container_name: ${CONTAINER_NAME} + networks: + - 1panel-network + labels: + createdBy: Apps +networks: + 1panel-network: + external: true diff --git a/apps/rallly/4.6.3/scripts/init.sh b/apps/rallly/4.6.3/scripts/init.sh new file mode 100644 index 000000000..cddaf7d97 --- /dev/null +++ b/apps/rallly/4.6.3/scripts/init.sh @@ -0,0 +1,10 @@ +NEW_SECRET=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 32) +if grep -q "SECRET_PASSWORD=" .env; then + if [[ "$(uname)" == "Darwin" ]]; then + sed -i '' "s/SECRET_PASSWORD=.*/SECRET_PASSWORD=$NEW_SECRET/" .env + else + sed -i "s/SECRET_PASSWORD=.*/SECRET_PASSWORD=$NEW_SECRET/" .env + fi +else + echo "SECRET_PASSWORD=$NEW_SECRET" >> .env +fi \ No newline at end of file diff --git a/apps/rallly/README.md b/apps/rallly/README.md new file mode 100644 index 000000000..6d157cd19 --- /dev/null +++ b/apps/rallly/README.md @@ -0,0 +1,15 @@ +## 产品介绍 + +Rallly 是一个开源的日程安排和协作工具,旨在让组织活动和会议变得更加容易。 + +## 配置和使用说明 + +1. Rallly 的安装过程中并不会为你创建默认账户,你仍需要像普通用户一样注册,因此安装表单务必认真填写。 + +2. 你需要准备一个 SMTP 账户用来发送验证码,否则你将无法完成注册。 + +3. 安装时会要求你填入初始管理员邮箱,使用该邮箱注册后导航到控制面板 `/control-panel`。 + +4. 初始管理员邮箱与支持邮箱相同时,可能会发信失败,此时请前往发信记录中寻找验证码。 + +5. 安装完成后,你可以通过 `应用安装目录/config.env` 文件配置其它环境变量,请参考[文档](https://support.rallly.co/self-hosting/configuration/)了解更多信息。`config.env` 中环境变量的优先级低于安装时填写的配置。 \ No newline at end of file diff --git a/apps/rallly/README_en.md b/apps/rallly/README_en.md new file mode 100644 index 000000000..97ee0acc2 --- /dev/null +++ b/apps/rallly/README_en.md @@ -0,0 +1,15 @@ +## Introduction + +Rallly is an open-source scheduling and collaboration tool designed to make organizing events and meetings easier. + +## Configuration and Usage Instructions + +1. During the installation of Rallly, a default account is not created for you. You still need to register like a regular user, so it is essential to fill out the installation form carefully. + +2. You need to prepare an SMTP account to send verification codes; otherwise, you will not be able to complete the registration. + +3. During installation, you will be asked to provide the initial administrator email. Use this email to register and then navigate to the control panel at `/control-panel`. + +4. When the initial administrator email is the same as the support email, sending may fail. In this case, please go to the sending records to find the verification code. + +5. After installation, you can configure additional environment variables via the `config.env` file located in the application installation directory. For more information, please refer to the [documentation](https://support.rallly.co/self-hosting/configuration/). Environment variables in `config.env` have lower priority than the configuration entered during installation. \ No newline at end of file diff --git a/apps/rallly/data.yml b/apps/rallly/data.yml new file mode 100644 index 000000000..493809c3f --- /dev/null +++ b/apps/rallly/data.yml @@ -0,0 +1,30 @@ +name: Rallly +tags: + - 实用工具 +title: 开源日程安排与协作工具 +description: 开源日程安排与协作工具 +additionalProperties: + key: rallly + name: Rallly + tags: + - Tool + shortDescZh: 开源日程安排与协作工具 + shortDescEn: Open-source scheduling and collaboration tool + description: + en: Open-source scheduling and collaboration tool + zh: 开源日程安排与协作工具 + zh-Hant: 開源日程安排與協作工具 + ja: オープンソースのスケジューリングおよびコラボレーションツール + ms: Alat penjadualan dan kerjasama sumber terbuka + pt-br: Ferramenta de agendamento e colaboração de código aberto + ru: Инструмент планирования и совместной работы с открытым исходным кодом + ko: 오픈소스 스케줄링 및 협업 도구 + type: website + crossVersionUpdate: true + limit: 0 + website: https://rallly.co + github: https://github.com/lukevella/rallly + document: https://support.rallly.co + architectures: + - amd64 + - arm64 diff --git a/apps/rallly/logo.png b/apps/rallly/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0101ffdfb10d0f29508d327d0c34a35894b0d662 GIT binary patch literal 2746 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 literal 0 HcmV?d00001