No description
Find a file
André Dantas 7d3b8a478e fix(docker): drop stripe envs and bump upload limits to 1G
Two adjustments from the PR review.

Stripe placeholders (STRIPE_KEY, STRIPE_SECRET, STRIPE_WEBHOOK_SECRET,
and the eight price IDs) only matter when SELF_HOSTED=false. The
Docker stack defaults to SELF_HOSTED=true, so keeping the block in
.env.docker.example just adds noise for first-time contributors.

upload_max_filesize and post_max_size go from 100M to 1G in both
php.dev.ini and php.prod.ini to accept full-length video uploads.
Bumping nginx client_max_body_size to match — otherwise the proxy
would cut the request off before PHP ever sees it.
2026-05-12 23:44:55 -03:00
.claude/skills chore: remove unused language files and update project configuration files 2026-05-04 14:04:03 -03:00
.github refactor: PostHog review polish 2026-05-07 10:41:53 -03:00
app refactor(facebook): cleanup publishReel after review 2026-05-12 20:43:32 -03:00
bootstrap refactor: standardize UI components, modernize localization structure, and remove legacy appearance management middleware. 2026-05-06 14:26:18 -03:00
config feat: AI image generation pipeline and post creation overhaul 2026-05-08 13:38:30 -03:00
database feat(tiktok): photo carousel support + UX Content Sharing API compliance 2026-05-09 12:47:49 -03:00
docker fix(docker): drop stripe envs and bump upload limits to 1G 2026-05-12 23:44:55 -03:00
lang fix(social): unify status lock + i18n notification strings 2026-05-12 19:11:23 -03:00
maizzle feat: @mentions in comments, AI Action layer + MCP tools, settings tabs 2026-05-01 20:59:03 -03:00
public feat: AI image generation pipeline and post creation overhaul 2026-05-08 13:38:30 -03:00
resources feat(tracking): push Google Ads conversion data to dataLayer on purchase 2026-05-12 13:31:00 -03:00
routes refactor: introduce VideoPreview component and standardize media handling across post previews 2026-05-08 18:30:11 -03:00
storage chore: first commit 2026-01-14 22:13:44 -03:00
stubs feat: implement MCP server with tools, Post API tests, auth middleware 2026-03-29 20:30:36 -03:00
templates refactor: reorganize settings UI, migrate post templates to a file-based registry, and remove legacy video generation features 2026-05-03 13:44:13 -03:00
tests refactor(facebook): cleanup publishReel after review 2026-05-12 20:43:32 -03:00
.dockerignore chore: add .dockerignore 2026-05-12 23:44:55 -03:00
.editorconfig chore: first commit 2026-01-14 22:13:44 -03:00
.env.ci feat: adding tests.. 2026-01-18 22:01:55 -03:00
.env.example feat: explicit POSTHOG_ENABLED gate for self-hosted safety 2026-05-07 12:42:35 -03:00
.env.testing feat: improvements on ui 2026-01-21 20:50:57 -03:00
.gitattributes chore: first commit 2026-01-14 22:13:44 -03:00
.gitignore feat(docker): replace stale Sail compose with self-contained stack 2026-05-12 23:44:55 -03:00
.mcp.json chore: update boost skills and config 2026-03-31 09:36:09 -03:00
.prettierignore chore: first commit 2026-01-14 22:13:44 -03:00
.prettierrc chore: first commit 2026-01-14 22:13:44 -03:00
artisan chore: first commit 2026-01-14 22:13:44 -03:00
boost.json chore: remove unused language files and update project configuration files 2026-05-04 14:04:03 -03:00
CLAUDE.md refactor: prefer string interpolation over concatenation for channel names 2026-05-08 19:22:01 -03:00
components.json chore: first commit 2026-01-14 22:13:44 -03:00
compose.override.yaml.example feat(docker): replace stale Sail compose with self-contained stack 2026-05-12 23:44:55 -03:00
compose.yaml feat(docker): replace stale Sail compose with self-contained stack 2026-05-12 23:44:55 -03:00
composer.json chore: update project license from FSL to AGPL-3.0-only 2026-05-04 15:46:56 -03:00
composer.lock feat: AI image generation pipeline and post creation overhaul 2026-05-08 13:38:30 -03:00
eslint.config.js fix: address PR review findings — publish, REST store, SSRF, race 2026-05-04 12:16:39 -03:00
GEMINI.md chore: update config files and remove unused translation files 2026-01-26 12:02:24 -03:00
LICENSE.md chore: update project license from FSL to AGPL-3.0-only 2026-05-04 15:46:56 -03:00
package-lock.json feat: AI image generation pipeline and post creation overhaul 2026-05-08 13:38:30 -03:00
package.json fix: resolve all TypeScript errors 2026-03-31 09:34:39 -03:00
phpunit.xml feat: adding tests 2026-01-18 22:04:34 -03:00
pint.json chore: first commit 2026-01-14 22:13:44 -03:00
README.md docs: document Docker development workflow in README 2026-05-12 23:44:55 -03:00
tsconfig.json chore: first commit 2026-01-14 22:13:44 -03:00
vite.config.ts chore: add resources/css/app.css to vite build input 2026-05-03 20:30:34 -03:00

TryPost

The open-source alternative to Buffer, Hootsuite, and Later.

Schedule, write, and publish to every social network from one place.
Self-hosted. Built for teams, agencies, and creators who own their data.

Stars License Release Discussions

Cloud • Documentation • Roadmap • Community


TryPost 1.0 is here

A massive release that turns TryPost into a complete open-source social media platform.

  • MCP Server — connect Claude, Cursor, ChatGPT, and any MCP client. Schedule, publish, and pull metrics with natural language.
  • REST API — Personal Access Tokens, every workflow you can do in the dashboard, available over HTTP.
  • Workspaces & Teams — manage multiple brands or clients in isolated environments. Invite team members with role-based permissions.
  • AI Carousel Generator — type a prompt, get a multi-slide LinkedIn / Instagram carousel back, with images and copy on-brand.
  • Brand Profile — set tone, voice, language, and colors once. Every AI generation respects them automatically.
  • Analytics — per-account engagement metrics from every platform that exposes them, in a single dashboard.

Read the release notes →


Why TryPost

Tired of paying $30–$200/month per user for a scheduler? Tired of your content sitting on someone else's database?

Self-hosted, your data Your posts, drafts, and metrics never leave your server
No artificial limits Unlimited posts, unlimited connected accounts, unlimited workspaces
AI built in Captions, carousels, on-brand voice — using your own keys
Multi-tenant ready Workspaces + roles for agencies managing many clients
API + MCP first-class Automate everything; your AI assistant can post for you
AGPL-licensed Inspect every line, fork it, ship it — forever free

Features

Visual Calendar See every scheduled post at a glance, switch between month/week/day
Multi-Platform Composer One draft → preview & tweak for every network in parallel
AI Generate / Review Draft from a prompt, get inline feedback before you publish
AI Carousel Builder Prompt → multi-slide carousel with images, on-brand
Brand Profile Tone, voice, language, colors — applied to every AI call
Asset Library Reusable workspace media + Unsplash & Giphy search built in
Signatures & Labels Reusable text blocks (hashtags, CTAs) and color-coded post tags
Team Collaboration Owner / Admin / Member roles, comments with @mentions on drafts
Workspaces Isolate brands, clients, or projects in their own spaces
REST API + MCP Full programmatic control; AI assistants integrate natively
Analytics Per-account engagement metrics across every supported platform
Multi-language English, Spanish, Portuguese

Supported Platforms


X (Twitter)

LinkedIn

Facebook

Instagram

TikTok

YouTube

Pinterest

Threads

Bluesky

Mastodon

Get Started

Try it on Cloud The fastest way. Sign up at trypost.it
Self-host Free forever. Installation guide →
Run with AI assistants Connect Claude / Cursor / ChatGPT via MCP →

A single command brings up the full stack — Laravel app, Postgres, Redis, Mailpit, Reverb (websockets), Horizon (queue dashboard), and the scheduler — with no host PHP or Node prerequisites:

git clone https://github.com/trypost-it/trypost.git
cd trypost
docker compose up --build

First boot takes ~3–4 minutes (composer install, npm ci, asset build, migrations). Subsequent boots are seconds. When the app container reports healthy, open http://localhost:8000.

Mail UI at http://localhost:8025. Vite HMR on :5173. Reverb websocket on :8080.

Common commands

# Artisan, Composer, Pest
docker compose exec app php artisan tinker
docker compose exec app php artisan test --compact
docker compose exec app composer require some/package

# View logs (one stream per process)
docker compose logs -f app

# Stop the stack
docker compose down

# Wipe all data (db, redis, vendor, node_modules)
docker compose down -v

Customizing your environment

Compose merges compose.override.yaml (gitignored, personal) on top of the committed compose.yaml. Copy the example and edit:

cp compose.override.yaml.example compose.override.yaml

Common tweaks (port forwarding, Xdebug, UID/GID alignment) are documented inline in that file.

Troubleshooting

  • Port already in use — set APP_PORT, VITE_PORT, FORWARD_DB_PORT, FORWARD_MAILPIT_UI_PORT in your shell or .env, or use compose.override.yaml.
  • Files written by container show as root-owned (Linux) — pass your UID/GID at build time:
    UID=$(id -u) GID=$(id -g) docker compose up --build
    
  • Vite HMR not connecting — confirm :5173 is forwarded and not blocked by your firewall; check docker compose logs app for the Vite process output.
  • First boot is stuck — composer install + npm ci run the first time only. Watch progress with docker compose logs -f app. Don't Ctrl-C in the first 3–4 minutes.
  • Reset everything — docker compose down -v && docker compose up --build re-runs migrations and re-seeds dependencies.

Production image

The same docker/Dockerfile exposes a production target for self-hosters:

docker build --target production -t trypost:latest -f docker/Dockerfile .

The production image bakes in composer install --no-dev, npm run build, SSR build, and a hardened OpCache profile. Note that VITE_REVERB_HOST is baked into the JS bundle at image build time — set it for your deployment hostname before building.

Contributing

We love contributions, no matter how small. Pick an issue, say hi in Discussions, or just open a PR with what you'd like to see.

If TryPost is useful to you, a star helps more people find it. That's the most valuable contribution if you're short on time.

License

GNU Affero General Public License v3.0 — use, modify, fork, self-host, and redistribute, including commercially. If you run a modified version as a network service, you need to make your changes available to its users (AGPL §13).


Built openly by the community. Star us on GitHub and tell a friend.