Українська платформа для читання ранобе.
- Читання ранобе з розділами
- Google OAuth аутентифікація
- Адмін-панель
- Прогрес читання
- Коментарі
- Пошук (OpenSearch + Searchkick)
- Система битв Покемонів
- Ruby 3.4.9 / Rails 8
- MySQL (app DB + Solid Cache + Solid Queue)
- OpenSearch (DO Managed)
- Hotwire (Turbo, Stimulus), Propshaft, Importmap — без Node/npm
- Tailwind CSS (
tailwindcss-rails)
git clone <repository>
cd tanooki
cp .env.example .env # налаштуйте DB_PASSWORD та інші змінні
bundle install
bin/rails db:create db:migrate db:seed
bin/dev # web + Tailwind watch + Solid Queue workerЛокально bin/dev запускає через Foreman (Procfile.dev):
| Процес | Команда |
|---|---|
| Web | bin/rails server |
| CSS | bin/rails tailwindcss:watch |
| Jobs | bin/jobs start (Solid Queue) |
Node/npm не потрібні — JavaScript через Importmap, стилі через Tailwind gem.
Пошук потребує DO Managed OpenSearch. Додайте OPENSEARCH_* з .env.example, потім:
bin/rails runner "Searchkick.callbacks(:inline) { Fiction.reindex; Publication.reindex; YoutubeVideo.reindex }"bin/rails test
bin/rubocop
bin/quality # RuboCop, Brakeman, bundler-audit, erb_lintProduction — DigitalOcean App Platform (baka.in.ua). Push to main on GitHub (lsdmi/tanooki) triggers deploy. Env vars — App Platform dashboard (див. .env.example).
| Component | Run command | Примітки |
|---|---|---|
| Web | bin/rails server |
Health check: GET /up |
| Worker | bin/jobs start |
Solid Queue; SOLID_QUEUE_IN_PUMA=false |
Aptfile встановлює libvips для Active Storage thumbnails. Після деплою:
bundle exec rails runner "puts Attachments::VariantProcessing.available?"
# → trueManaged add-ons: MySQL, OpenSearch. Asset CDN — опційно через ASSET_HOST (DigitalOcean Spaces).
app/controllers/ # Контролери
app/models/ # Моделі
app/views/ # Представлення
config/ # Конфігурація
db/ # Міграції
docs/ # Архітектура та modernization spike
config/database.yml— MySQLconfig/cache.yml/config/queue.yml— Solid Cache, Solid Queueconfig/credentials.yml.enc— секрети.env— локально; production — App Platform env vars
Приватний проект.