ai-startup-skills
AI 제품을 만드는 스타트업을 위한 7단계 에이전트 스킬: 검증 → 비즈플랜 → 정책 → 로드쇼 → 고객 확보 → 가격 책정 → 등록
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Libreverse is a privacy‑centric application for curating and sharing interactive "experiences" (self‑contained HTML documents). Powered by Hotwire, it delivers a seamless, single‑page‑application (SPA) experience entirely within the Ruby on Rails ecosystem while keeping all data on whatever instance you choose to use.
Alpha release - routine maintainence only since the need for libreverse has diminished – this version is under active development. Expect breaking changes, incomplete features, and occasional rough edges. Planned work is tracked in our road‑map.
| Layer | Technology |
|---|---|
| Language | Ruby 3.4 (YJIT enabled) |
| Framework | Rails 8.0.2 + Hotwire |
| Database | TiDB + SQLite 3 (enhanced adapter) |
| Build / Assets | Vite 6 + Shakapacker |
| Web Server | Phusion Passenger |
| Container Image | Multi‑stage Dockerfile |
Libreverse supports decentralized federation using the ActivityPub protocol, allowing instances to share experiences while maintaining local control.
Set your instance domain in environment variables:
export INSTANCE_DOMAIN=your-domain.com
Admin users can manage federation settings at /admin/federation. Federation is implemented with a simplified delivery approach to ensure stability - full ActivityPub delivery can be enabled when desired.
For detailed federation documentation, see documentation/federation.md.
Note: Building the Docker image requires at least 8 GB of available memory, though the running container itself needs very little memory. If you encounter out-of-memory errors during the build, try increasing your Docker memory limit.
docker build -t libreverse:alpha .
# Persist database and uploads
docker run -p 3000:3000 -v libreverse_data:/data libreverse:alpha
The image exposes port 3000 and stores the production SQLite database and uploaded files under /data.
Quality checks now run automatically via GitHub Actions CI on every push and pull request.
To run quality checks manually (original script preserved):
perl scripts/static.pl
app/ – MVC components, Reflexes, Stimulus controllers (.coffee)
bin/ – Development helpers & executable scripts
db/ – Migrations and schema.sql
documentation/ – Comprehensive guides (e.g., SQLite, security)
scripts/ – One‑off maintenance scripts
See the https://docs.libreverse.io for full guides.
Security is a core focus of Libreverse. Please see SECURITY.md for more information.
Looking for ideas? Check the good first issue label or our road‑map.
Libreverse is licensed under the APGL License for source code and various permissive licenses for assets. See the licenses/ directory for full texts.
Sensitive columns in Rodauth tables are encrypted using Sequel's built-in column_encryption plugin. The encryption key is a 32-byte value derived from Rails.application.secret_key_base using ActiveSupport::KeyGenerator (see config/initializers/sequel_encryption.rb).
secret_key_base does not change. If it does, you must re-encrypt existing data.accounts.password_hashaccount_remember_keys.key (searchable)account_password_reset_keys.key (searchable)CHECK constraints to ensure only encrypted data is stored (see db/migrate/20250501000000_add_column_encryption_constraints_to_rodauth.rb).No additional gem is required; this uses Sequel's built-in plugin. All Rodauth features continue to work seamlessly with encrypted data.
If you deploy Libreverse behind a reverse proxy (such as Nginx, Apache, or a cloud load balancer), you must ensure that the proxy sets the X-Forwarded-Proto header on all requests. This header is used by Rails and middleware to correctly identify whether the original request was made over HTTP or HTTPS. If this header is missing or misconfigured, you may experience issues such as:
Solution:
proxy_set_header X-Forwarded-Proto $scheme;RequestHeader set X-Forwarded-Proto expr=%{REQUEST_SCHEME}Thank you for exploring Libreverse!