Рефакторизация структуры кода для улучшения читаемости и удобства сопровождения.

This commit is contained in:
2026-04-30 07:41:41 +03:00
parent eec534760e
commit 89b17ea2b2
1406 changed files with 38483 additions and 3 deletions
View File
View File
View File
+36
View File
@@ -0,0 +1,36 @@
manifestVersion: 1.1
id: maybe
category: finance
name: Maybe
version: '0.6.0'
tagline: ОС для ваших личных финансов
description: >-
Maybe — это полностью (ваши финансы в безопасности) ОС с открытым исходным кодом для ваших личных финансов, созданная
небольшая команда вместе с невероятным сообществом.
Это версия Maybe с ранним доступом, доступная только тем, кто размещает ее самостоятельно.
Maybe находится в активной разработке и все еще работает над стабильной версией с полным набором функций.
releaseNotes: >-
🚨 Maybe переключается на финансовое прогнозирование B2B и планирование сценариев и больше не будет активно поддерживать проект.
Этот финальный выпуск представляет собой рабочую версию программного обеспечения «как есть».
Полные примечания к выпуску можно найти по адресу https://github.com/maybe-finance/maybe/releases.
developer: Maybe
website: https://maybe.co/
dependencies: []
repo: https://github.com/maybe-finance/maybe
support: https://github.com/maybe-finance/discussions
port: 3063
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
path: ''
defaultUsername: ''
defaultPassword: ''
submitter: CaptainCodeman
submission: https://github.com/getumbrel/dfwebos-apps/pull/1105
+84
View File
@@ -0,0 +1,84 @@
version: '3.7'
services:
app_proxy:
environment:
APP_HOST: maybe_web_1
APP_PORT: 3063
web:
image: ghcr.io/maybe-finance/maybe:0.6.0@sha256:1e791e88ecc4d124d05142d943bcec5b5a172e889f648c97d334363133384f01
restart: on-failure
stop_grace_period: 1m
volumes:
- ${APP_DATA_DIR}/data/rails:/rails/storage
environment:
SELF_HOSTING_ENABLED: "true"
PORT: 3063
# URL кодирует символы подчеркивания (%5F) в имени хоста для удовлетворения строгого анализа URI в Ruby.
# Original: postgresql://maybe:maybe@maybe_db_1:5432/maybe
DATABASE_URL: postgresql://maybe:maybe@maybe%5Fdb%5F1:5432/maybe
RAILS_FORCE_SSL: "false"
RAILS_ASSUME_SSL: "false"
POSTGRES_DB: maybe
POSTGRES_USER: maybe
POSTGRES_PASSWORD: maybe
GOOD_JOB_EXECUTION_MODE: async
SECRET_KEY_BASE: $APP_SEED
REDIS_URL: redis://maybe_redis_1:6379/1
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
worker:
image: ghcr.io/maybe-finance/maybe:0.6.0@sha256:1e791e88ecc4d124d05142d943bcec5b5a172e889f648c97d334363133384f01
command: bundle exec sidekiq
restart: on-failure
environment:
SELF_HOSTING_ENABLED: "true"
PORT: 3063
# URL кодирует символы подчеркивания (%5F) в имени хоста для удовлетворения строгого анализа URI в Ruby.
# Original: postgresql://maybe:maybe@maybe_db_1:5432/maybe
DATABASE_URL: postgresql://maybe:maybe@maybe%5Fdb%5F1:5432/maybe
RAILS_FORCE_SSL: "false"
RAILS_ASSUME_SSL: "false"
POSTGRES_DB: maybe
POSTGRES_USER: maybe
POSTGRES_PASSWORD: maybe
GOOD_JOB_EXECUTION_MODE: async
SECRET_KEY_BASE: $APP_SEED
REDIS_URL: redis://maybe_redis_1:6379/1
depends_on:
redis:
condition: service_healthy
db:
image: postgres:16@sha256:1bf73ccae25238fa555100080042f0b2f9be08eb757e200fe6afc1fc413a1b3c
restart: on-failure
stop_grace_period: 1m
volumes:
- ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data
environment:
POSTGRES_DB: maybe
POSTGRES_USER: maybe
POSTGRES_PASSWORD: maybe
PGDATA: /var/lib/postgresql/data/pgdata
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U maybe']
interval: 10s
timeout: 5s
retries: 5
redis:
image: redis:7.4.2@sha256:fbdbaea47b9ae4ecc2082ecdb4e1cea81e32176ffb1dcf643d422ad07427e5d9
user: "1000:1000"
restart: on-failure
volumes:
- ${APP_DATA_DIR}/data/redis:/data
healthcheck:
test: [ "CMD", "redis-cli", "ping" ]
interval: 5s
timeout: 5s
retries: 5
+42
View File
@@ -0,0 +1,42 @@
#!/usr/bin/env bash
set -euo pipefail
# Этот скрипт проверяет наличие каталогов data/data/redis и создает их + устанавливает правильные разрешения, если они не существуют.
# Каталог приложений находится на один уровень выше, чем в этом скрипте.
APP_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")"
APP_DATA_DIR="${APP_DIR}/data"
APP_DATA_REDIS_DIR="${APP_DATA_DIR}/redis"
DESIRED_OWNER="1000:1000"
set_correct_permissions() {
local -r path="${1}"
if [[ -d "${path}" ]]; then
owner=$(stat -c "%u:%g" "${path}")
if [[ "${owner}" != "${DESIRED_OWNER}" ]]; then
chown -R "${DESIRED_OWNER}" "${path}"
fi
fi
}
create_directory_if_not_exists() {
local -r dir="${1}"
if [[ ! -d "${dir}" ]]; then
mkdir -p "${dir}"
set_correct_permissions "${dir}"
fi
}
move_file_if_exists() {
local -r src="${1}"
local -r dest="${2}"
if [[ -f "${src}" ]]; then
mv "${src}" "${dest}"
fi
}
# Создайте каталоги, если они не существуют.
create_directory_if_not_exists "${APP_DATA_DIR}"
create_directory_if_not_exists "${APP_DATA_REDIS_DIR}"