mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
Merge branch 'canary' into canary
This commit is contained in:
@@ -37,7 +37,7 @@ const appearanceFormSchema = z.object({
|
||||
theme: z.enum(["light", "dark", "system"], {
|
||||
required_error: "Please select a theme.",
|
||||
}),
|
||||
language: z.enum(["en", "pl", "zh-Hans"], {
|
||||
language: z.enum(["en", "pl", "ru", "zh-Hans"], {
|
||||
required_error: "Please select a language.",
|
||||
}),
|
||||
});
|
||||
@@ -175,6 +175,7 @@ export function AppearanceForm() {
|
||||
{[
|
||||
{ label: "English", value: "en" },
|
||||
{ label: "Polski", value: "pl" },
|
||||
{ label: "Русский", value: "ru" },
|
||||
{ label: "简体中文", value: "zh-Hans" },
|
||||
].map((preset) => (
|
||||
<SelectItem key={preset.label} value={preset.value}>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
module.exports = {
|
||||
i18n: {
|
||||
defaultLocale: "en",
|
||||
locales: ["en", "pl", "zh-Hans"],
|
||||
locales: ["en", "pl", "ru", "zh-Hans"],
|
||||
localeDetection: false,
|
||||
},
|
||||
fallbackLng: "en",
|
||||
|
||||
@@ -71,7 +71,7 @@ export default api.withTRPC(
|
||||
{
|
||||
i18n: {
|
||||
defaultLocale: "en",
|
||||
locales: ["en", "pl", "zh-Hans"],
|
||||
locales: ["en", "pl", "ru", "zh-Hans"],
|
||||
localeDetection: false,
|
||||
},
|
||||
fallbackLng: "en",
|
||||
|
||||
1
apps/dokploy/public/locales/ru/common.json
Normal file
1
apps/dokploy/public/locales/ru/common.json
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
44
apps/dokploy/public/locales/ru/settings.json
Normal file
44
apps/dokploy/public/locales/ru/settings.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"settings.common.save": "Сохранить",
|
||||
"settings.server.domain.title": "Домен сервера",
|
||||
"settings.server.domain.description": "Установите домен для вашего серверного приложения Dokploy.",
|
||||
"settings.server.domain.form.domain": "Домен",
|
||||
"settings.server.domain.form.letsEncryptEmail": "Email для Let's Encrypt",
|
||||
"settings.server.domain.form.certificate.label": "Сертификат",
|
||||
"settings.server.domain.form.certificate.placeholder": "Выберите сертификат",
|
||||
"settings.server.domain.form.certificateOptions.none": "Нет",
|
||||
"settings.server.domain.form.certificateOptions.letsencrypt": "Let's Encrypt (По умолчанию)",
|
||||
|
||||
"settings.server.webServer.title": "Веб-сервер",
|
||||
"settings.server.webServer.description": "Перезагрузка или очистка веб-сервера.",
|
||||
"settings.server.webServer.server.label": "Сервер",
|
||||
"settings.server.webServer.traefik.label": "Traefik",
|
||||
"settings.server.webServer.storage.label": "Дисковое пространство",
|
||||
"settings.server.webServer.actions": "Действия",
|
||||
"settings.server.webServer.reload": "Перезагрузить",
|
||||
"settings.server.webServer.watchLogs": "Просмотр логов",
|
||||
"settings.server.webServer.updateServerIp": "Изменить IP адрес",
|
||||
"settings.server.webServer.traefik.modifyEnv": "Изменить переменные окружения",
|
||||
"settings.server.webServer.storage.cleanUnusedImages": "Очистить неиспользуемые образы",
|
||||
"settings.server.webServer.storage.cleanUnusedVolumes": "Очистить неиспользуемые тома",
|
||||
"settings.server.webServer.storage.cleanStoppedContainers": "Очистить остановленные контейнеры",
|
||||
"settings.server.webServer.storage.cleanDockerBuilder": "Очистить Docker Builder и систему",
|
||||
"settings.server.webServer.storage.cleanMonitoring": "Очистить мониторинг",
|
||||
"settings.server.webServer.storage.cleanAll": "Очистить все",
|
||||
|
||||
"settings.profile.title": "Аккаунт",
|
||||
"settings.profile.description": "Измените данные вашего профиля.",
|
||||
"settings.profile.email": "Email",
|
||||
"settings.profile.password": "Пароль",
|
||||
"settings.profile.avatar": "Аватар",
|
||||
|
||||
"settings.appearance.title": "Внешний вид",
|
||||
"settings.appearance.description": "Настройте тему Dokploy.",
|
||||
"settings.appearance.theme": "Тема",
|
||||
"settings.appearance.themeDescription": "Выберите тему системной панели",
|
||||
"settings.appearance.themes.light": "Светлая",
|
||||
"settings.appearance.themes.dark": "Темная",
|
||||
"settings.appearance.themes.system": "Системная",
|
||||
"settings.appearance.language": "Язык",
|
||||
"settings.appearance.languageDescription": "Select a language for your dashboard"
|
||||
}
|
||||
3
apps/dokploy/public/templates/chatwoot.svg
Normal file
3
apps/dokploy/public/templates/chatwoot.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="undefined" height="undefined" viewBox="0 0 24 24">
|
||||
<path fill="#0ea5e9" d="M0 12c0 6.629 5.371 12 12 12s12-5.371 12-12S18.629 0 12 0S0 5.371 0 12m17.008 5.29H11.44a5.57 5.57 0 0 1-5.562-5.567A5.57 5.57 0 0 1 11.44 6.16a5.57 5.57 0 0 1 5.567 5.563Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 306 B |
76
apps/dokploy/templates/chatwoot/docker-compose.yml
Normal file
76
apps/dokploy/templates/chatwoot/docker-compose.yml
Normal file
@@ -0,0 +1,76 @@
|
||||
version: '3'
|
||||
|
||||
x-base-config: &base-config
|
||||
image: chatwoot/chatwoot:v3.14.1
|
||||
volumes:
|
||||
- chatwoot-storage:/app/storage
|
||||
networks:
|
||||
- dokploy-network
|
||||
environment:
|
||||
- FRONTEND_URL=${FRONTEND_URL}
|
||||
- SECRET_KEY_BASE=${SECRET_KEY_BASE}
|
||||
- RAILS_ENV=${RAILS_ENV}
|
||||
- NODE_ENV=${NODE_ENV}
|
||||
- INSTALLATION_ENV=${INSTALLATION_ENV}
|
||||
- RAILS_LOG_TO_STDOUT=${RAILS_LOG_TO_STDOUT}
|
||||
- LOG_LEVEL=${LOG_LEVEL}
|
||||
- DEFAULT_LOCALE=${DEFAULT_LOCALE}
|
||||
- POSTGRES_HOST=${POSTGRES_HOST}
|
||||
- POSTGRES_PORT=${POSTGRES_PORT}
|
||||
- POSTGRES_DATABASE=${POSTGRES_DATABASE}
|
||||
- POSTGRES_USERNAME=${POSTGRES_USERNAME}
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
- REDIS_URL=${REDIS_URL}
|
||||
- ENABLE_ACCOUNT_SIGNUP=${ENABLE_ACCOUNT_SIGNUP}
|
||||
- ACTIVE_STORAGE_SERVICE=${ACTIVE_STORAGE_SERVICE}
|
||||
|
||||
services:
|
||||
chatwoot-rails:
|
||||
<<: *base-config
|
||||
depends_on:
|
||||
chatwoot-postgres:
|
||||
condition: service_started
|
||||
chatwoot-redis:
|
||||
condition: service_started
|
||||
entrypoint: docker/entrypoints/rails.sh
|
||||
command: ['bundle', 'exec', 'sh', '-c', 'rails db:chatwoot_prepare && rails s -p 3000 -b 0.0.0.0']
|
||||
restart: always
|
||||
|
||||
chatwoot-sidekiq:
|
||||
<<: *base-config
|
||||
depends_on:
|
||||
chatwoot-postgres:
|
||||
condition: service_started
|
||||
chatwoot-redis:
|
||||
condition: service_started
|
||||
command: ['bundle', 'exec', 'sidekiq', '-C', 'config/sidekiq.yml']
|
||||
restart: always
|
||||
|
||||
chatwoot-postgres:
|
||||
image: postgres:12
|
||||
restart: always
|
||||
volumes:
|
||||
- chatwoot-postgres-data:/var/lib/postgresql/data
|
||||
networks:
|
||||
- dokploy-network
|
||||
environment:
|
||||
- POSTGRES_DB=${POSTGRES_DATABASE}
|
||||
- POSTGRES_USER=${POSTGRES_USERNAME}
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
|
||||
chatwoot-redis:
|
||||
image: redis:alpine
|
||||
restart: always
|
||||
volumes:
|
||||
- chatwoot-redis-data:/data
|
||||
networks:
|
||||
- dokploy-network
|
||||
|
||||
networks:
|
||||
dokploy-network:
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
chatwoot-storage:
|
||||
chatwoot-postgres-data:
|
||||
chatwoot-redis-data:
|
||||
46
apps/dokploy/templates/chatwoot/index.ts
Normal file
46
apps/dokploy/templates/chatwoot/index.ts
Normal file
@@ -0,0 +1,46 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateBase64,
|
||||
generatePassword,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const secretKeyBase = generateBase64(64);
|
||||
const postgresPassword = generatePassword();
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 3000,
|
||||
serviceName: "chatwoot-rails",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`FRONTEND_URL=http://${mainDomain}`,
|
||||
`SECRET_KEY_BASE=${secretKeyBase}`,
|
||||
"RAILS_ENV=production",
|
||||
"NODE_ENV=production",
|
||||
"INSTALLATION_ENV=docker",
|
||||
"RAILS_LOG_TO_STDOUT=true",
|
||||
"LOG_LEVEL=info",
|
||||
"DEFAULT_LOCALE=en",
|
||||
"POSTGRES_HOST=chatwoot-postgres",
|
||||
"POSTGRES_PORT=5432",
|
||||
"POSTGRES_DATABASE=chatwoot",
|
||||
"POSTGRES_USERNAME=postgres",
|
||||
`POSTGRES_PASSWORD=${postgresPassword}`,
|
||||
"REDIS_URL=redis://chatwoot-redis:6379",
|
||||
"ENABLE_ACCOUNT_SIGNUP=false",
|
||||
"ACTIVE_STORAGE_SERVICE=local",
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
envs,
|
||||
};
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
import Cookies from "js-cookie";
|
||||
|
||||
const SUPPORTED_LOCALES = ["en", "pl", "zh-Hans"] as const;
|
||||
const SUPPORTED_LOCALES = ["en", "pl", "ru", "zh-Hans"] as const;
|
||||
|
||||
type Locale = (typeof SUPPORTED_LOCALES)[number];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user