Merge branch 'canary' into canary

This commit is contained in:
Mauricio Siu
2024-11-19 20:24:40 -06:00
committed by GitHub
10 changed files with 1039 additions and 853 deletions

View File

@@ -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}>

View File

@@ -2,7 +2,7 @@
module.exports = {
i18n: {
defaultLocale: "en",
locales: ["en", "pl", "zh-Hans"],
locales: ["en", "pl", "ru", "zh-Hans"],
localeDetection: false,
},
fallbackLng: "en",

View File

@@ -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",

View File

@@ -0,0 +1 @@
{}

View 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"
}

View 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

View 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:

View 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

View File

@@ -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];