Skip to content

Latest commit

 

History

History
179 lines (117 loc) · 4.45 KB

File metadata and controls

179 lines (117 loc) · 4.45 KB

LibreMedia

Ruby Rails PostgreSQL License: SACL


Languages: Polski (default) · English · Українська


What is LibreMedia?

LibreMedia is an independent multimedia SaaS platform for creators, journalists, and opinion leaders who value freedom of speech and media independence.

The platform enables:

  • 📹 Publishing multimedia content (video, photos, articles)
  • 💰 Monetization through subscriptions and donations
  • 👥 Building communities around democratic values
  • 🌍 Global reach with multilingual interface (PL, EN, UK, LT, DE, FR, ES)

Free media means independent media.
True independence requires financial independence — when conscious users support creators directly.


Why is the source code public?

LibreMedia is a commercial SaaS platform with publicly available source code.

The code is public to ensure:

  • 🔍 Transparency and security — anyone can audit the code and verify there are no backdoors or spyware
  • 🧠 Technical openness — architecture and implementation decisions are visible
  • 🤝 Community contributions — pull requests with fixes and improvements are welcome

Is LibreMedia open source?

No.

LibreMedia is source-available, not open source under the OSI definition. This distinction is intentional and clearly communicated. Details in LICENSE.md.


Documentation

Document Description
docs/README.md Main technical documentation
docs/architecture.md System architecture
docs/api.md API documentation
docs/database.md Database structure and ERD
docs/deployment.md Deployment instructions
LICENSE.md SACL-1.0 License

Requirements (local)

  • Ruby: 3.4.6 (see .ruby-version)
  • PostgreSQL: 15+
  • Node.js: 24+ (see .node-version / .nvmrc)
  • Yarn: 1.22+
  • Redis: 7+ (for Sidekiq)
  • Elasticsearch: 8.x (optional, for search)

Quick Start

1. Install dependencies

# Ruby
bundle install

# JavaScript
yarn install

2. Set up database

bin/rails db:prepare

3. Load sample data (development)

bin/rails db:seed

4. Start the server

bin/dev

The application will be available at http://localhost:3000


Configuration

Default settings are in config/settings.yml. Key environment variables:

Variable Description
DATABASE_URL PostgreSQL connection URL
REDIS_URL Redis connection URL
DEVISE_JWT_SECRET_KEY JWT secret for API
ELASTICSEARCH_URL Elasticsearch URL (optional)
STRIPE_* Stripe payment keys
SMTP_* Email configuration

Tests

Unit tests (RSpec)

bundle exec rspec

Code coverage

After running tests, the coverage report is generated at coverage/index.html.


Services / Components

  • Sidekiq — background job processing
  • Elasticsearch — full-text search
  • Stripe — payments and subscriptions
  • Action Cable — WebSocket for real-time notifications

Deployment

Deployments are done via Capistrano:

cap staging deploy
cap production deploy

Details in docs/deployment.md.


Contributing

Pull requests are welcome!

By submitting a contribution, you agree that it may be incorporated into the commercial LibreMedia product without additional compensation.

Details in LICENSE.md.


Ownership

LibreMedia is developed and operated by Webgate Systems LTD (United Kingdom).

Website webgate.pro
Email legal@webgate.pro
GitHub github.com/WebgateSystems/lmcore

© 2026 Webgate Systems LTD
LibreMedia — Free Speech, Free Media