mirror of
https://github.com/manualdousuario/marreta.git
synced 2026-10-16 11:55:03 +00:00
| .github/workflows | ||
| app | ||
| bootstrap | ||
| config | ||
| database | ||
| docker/entrypoint.d | ||
| lang | ||
| public | ||
| resources/views | ||
| routes | ||
| storage | ||
| tests | ||
| .dockerignore | ||
| .env.example | ||
| .gitattributes | ||
| .gitignore | ||
| artisan | ||
| compose.yml | ||
| composer.json | ||
| composer.lock | ||
| Dockerfile | ||
| LICENSE.md | ||
| phpunit.xml | ||
| README.en.md | ||
| README.md | ||
| screen.en.png | ||
| screen.png | ||
🛠️ Marreta
Marreta is a tool that breaks down access barriers and elements that get in the way of reading!
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 nameAPP_DESCRIPTION: What it's forAPP_URL: Where it will run, full address withhttps://. The container serves HTTP on port8080and compose.yml publishes it on81on 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 volumeDISABLE_CACHE: optional. Page caching is on by default; settrueto turn it offADMIN_EMAIL: admin@marreta.localADMIN_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
80to8080(compose.yml now publishes it as81:8080on the host; adjust if you had80:80mapped). - The old bind mounts (
./app/cacheand./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
- Before tearing down the old containers, note down any customizations you've made in
app/data/domain_rules.php,app/data/blocked_domains.php, andapp/data/global_rules.php, as well as the domains registered inapp/cache/dmca_domains.json. None of this is migrated automatically. - Download the new
compose.yml, generate anAPP_KEY(at laravel-encryption-key-generator.vercel.app), and setADMIN_EMAILandADMIN_PASSWORD. - 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. - Go to
YOUR_DOMAIN/admin, log in withADMIN_EMAIL/ADMIN_PASSWORD, and manually re-register: your custom domain rules, extra blocked domains, and DMCA domains you noted down in step 1.
🚀 Integrations
- 🤖 Telegram: Official bot
- 🦊 Firefox: Extension by Clarissa Mendes - Download | Source code
- 🌀 Chrome: Extension by Clarissa Mendes - Download | Source code
- 🦋 Bluesky: Bot by Joselito - Profile | Source code
- 🍎 Apple: Shortcuts integration
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!
