Find a file
Renan Bernordi 447b29012b
Some checks failed
✅ CI / 🔍 PHP syntax check (push) Has been cancelled
✅ CI / 🧪 Run tests (push) Has been cancelled
fix retryrls
2026-08-28 17:07:35 -03:00
.github/workflows fix retryrls 2026-08-28 17:07:35 -03:00
app pint 2026-07-27 15:50:32 -03:00
bootstrap pest test and sentry support 2026-08-12 13:48:56 -03:00
config pest test and sentry support 2026-08-12 13:48:56 -03:00
database pint 2026-07-27 15:50:32 -03:00
docker/entrypoint.d migrate serversideup 2026-07-24 21:48:10 -03:00
lang admin locale 2026-07-24 18:51:43 -03:00
public pest test and sentry support 2026-08-12 13:48:56 -03:00
resources/views fixes and cleanup 2026-07-24 18:55:03 -03:00
routes migrate to laravel 2026-07-24 16:14:22 -03:00
storage migrate to laravel 2026-07-24 16:14:22 -03:00
tests eol 2026-08-12 13:51:43 -03:00
.dockerignore migrate serversideup 2026-07-24 21:48:10 -03:00
.env.example pest test and sentry support 2026-08-12 13:48:56 -03:00
.gitattributes migrate to laravel 2026-07-24 16:14:22 -03:00
.gitignore pest test and sentry support 2026-08-12 13:48:56 -03:00
artisan migrate to laravel 2026-07-24 16:14:22 -03:00
compose.yml fix admin create seed 2026-07-27 12:31:55 -03:00
composer.json pest test and sentry support 2026-08-12 13:48:56 -03:00
composer.lock pest test and sentry support 2026-08-12 13:48:56 -03:00
Dockerfile migrate serversideup 2026-07-24 21:48:10 -03:00
LICENSE.md commit inicial 2024-11-22 17:41:07 -03:00
phpunit.xml fixes and cleanup 2026-07-24 18:55:03 -03:00
README.en.md update readme 2026-07-27 16:01:08 -03:00
README.md update readme 2026-07-27 16:01:08 -03:00
screen.en.png add screens 2025-01-12 19:00:23 -03:00
screen.png add screens 2025-01-12 19:00:23 -03:00

🛠️ Marreta

en pt-br

PHP 8.4+ Laravel 13

Forks Stars Issues

Marreta is a tool that breaks down access barriers and elements that get in the way of reading!

Before and after Marreta

Public instance at marreta.link!

✨ What's cool about it?

  • Automatically cleans up and fixes URLs
  • Removes annoying tracking parameters
  • Forces HTTPS to keep everything secure
  • Leaves the HTML clean and optimized
  • Fixes relative URLs on its own
  • Lets you add your own styles and scripts
  • Removes unwanted elements
  • Cache, cache!
  • Blocks domains you don't want
  • DMCA protection with custom messages
  • Lets you configure headers and cookies your way
  • PHP-FPM and OPcache
  • Proxy support

🐳 Installing with Docker

Install Docker and Docker Compose

curl -o ./compose.yml https://raw.githubusercontent.com/manualdousuario/marreta/main/compose.yml

Now edit it to your liking:

nano compose.yml

  • APP_NAME: Your Marreta's name
  • APP_DESCRIPTION: What it's for
  • APP_URL: Where it will run, full address with https://. The container serves HTTP on port 8080 and compose.yml publishes it on 81 on the host; if you change that (e.g. 8080:8080), include the port in APP_URL too (e.g. https://yoursite:8080)
  • APP_LOCALE: pt-br (Brazilian Portuguese), en (English), es (Spanish), de-de (German), or ru-ru (Russian)
  • APP_KEY: optional. If left empty, a key is generated on first boot and stored in the volume
  • DISABLE_CACHE: optional. Page caching is on by default; set true to turn it off
  • ADMIN_EMAIL: admin@marreta.local
  • ADMIN_PASSWORD: password

Now just run docker compose up -d

⚠️ Breaking changes: migrating from 2.x to 3.x

Starting with 3.0.0, Marreta became a Laravel application. It's a complete rewrite from scratch, so there's no "in-place" upgrade path; the recommendation is to spin up new containers and reconfigure the essentials.

What changed

Environment variables

Before (2.x) Now (3.x) Note
SITE_NAME APP_NAME
SITE_DESCRIPTION APP_DESCRIPTION
SITE_URL APP_URL
LANGUAGE APP_LOCALE
DEBUG APP_DEBUG
— APP_KEY New and required. If left empty, a key is generated automatically on first boot
SELENIUM_HOST BROWSER_WS_ENDPOINT Now points to Lightpanda (ws://marreta_browser:9222), no longer Selenium
DNS_SERVERS (removed)
CLEANUP_DAYS (removed)
LOG_LEVEL / LOG_DAYS_TO_KEEP (removed)
S3_CACHE_ENABLED / S3_* (removed)
— ADMIN_EMAIL / ADMIN_PASSWORD New. Login credentials for the /admin panel

Docker

  • The container's internal port changed from 80 to 8080 (compose.yml now publishes it as 81:8080 on the host; adjust if you had 80:80 mapped).
  • The old bind mounts (./app/cache and ./app/logs) no longer exist. Everything (SQLite database + cache) now lives in a named volume, marreta_storage, mounted at /var/www/html/storage/app.

Step-by-step migration guide

  1. Before tearing down the old containers, note down any customizations you've made in app/data/domain_rules.php, app/data/blocked_domains.php, and app/data/global_rules.php, as well as the domains registered in app/cache/dmca_domains.json. None of this is migrated automatically.
  2. Download the new compose.yml, generate an APP_KEY (at laravel-encryption-key-generator.vercel.app), and set ADMIN_EMAIL and ADMIN_PASSWORD.
  3. Start the containers with docker compose up -d. On first boot, migrations run and the database is populated with the default set of rules/blocked domains that ship with Marreta.
  4. Go to YOUR_DOMAIN/admin, log in with ADMIN_EMAIL/ADMIN_PASSWORD, and manually re-register: your custom domain rules, extra blocked domains, and DMCA domains you noted down in step 1.

🚀 Integrations


Made with ❤️! If you have questions or suggestions, open an issue and we'll help! 😉

Thanks to the Burlesco and Hover projects, which served as a basis for several rules!

Star History

Star History Chart