Back to Templates
TryPost logo

TryPost

v2.0.0

TryPost is an open source social media scheduler with team workspaces, a post composer, publishing queues, analytics, a REST API, and MCP tools.

Deploy on Dokploy

Deploy TryPost on Dokploy

  1. Install Dokploy on your server if you haven't already.
  2. In your Dokploy panel, open a project and click Create Service → Template.
  3. Search for TryPost and click Create — Dokploy configures domains, environment variables, and volumes for you.

Alternatively, create a Compose service, go to Advanced → Import from Base64, and paste this payload:

base64
ewogICJjb21wb3NlIjogInNlcnZpY2VzOlxuICB0cnlwb3N0OlxuICAgICMgUmVidWlsZCBvbmx5IGJyb3dzZXIgYXNzZXRzOiB0aGUgcHVibGlzaGVkIGJ1bmRsZSBwb2ludHMgYXQgbG9jYWxob3N0LlxuICAgIGJ1aWxkOlxuICAgICAgY29udGV4dDogLlxuICAgICAgZG9ja2VyZmlsZV9pbmxpbmU6IHxcbiAgICAgICAgRlJPTSBnaGNyLmlvL3RyeXBvc3RpdC90cnlwb3N0OjIuMC4wIEFTIGFzc2V0c1xuICAgICAgICBSVU4gYXBrIGFkZCAtLW5vLWNhY2hlIG5vZGVqcyBucG1cbiAgICAgICAgQVJHIFZJVEVfUkVWRVJCX0hPU1RcbiAgICAgICAgQVJHIFZJVEVfUkVWRVJCX1BPUlRcbiAgICAgICAgQVJHIFZJVEVfUkVWRVJCX1NDSEVNRVxuICAgICAgICBBUkcgVklURV9SRVZFUkJfQVBQX0tFWVxuICAgICAgICBSVU4gQVBQX1VSTD1odHRwOi8vbG9jYWxob3N0IG5wbSBydW4gYnVpbGRcbiAgICAgICAgRlJPTSBnaGNyLmlvL3RyeXBvc3RpdC90cnlwb3N0OjIuMC4wXG4gICAgICAgIENPUFkgLS1mcm9tPWFzc2V0cyAvdmFyL3d3dy9odG1sL3B1YmxpYy9idWlsZCAvdmFyL3d3dy9odG1sL3B1YmxpYy9idWlsZFxuICAgICAgYXJnczpcbiAgICAgICAgVklURV9SRVZFUkJfSE9TVDogXCIke1RSWVBPU1RfSE9TVDo/U2V0IFRSWVBPU1RfSE9TVH1cIlxuICAgICAgICBWSVRFX1JFVkVSQl9QT1JUOiBcIiR7VFJZUE9TVF9QVUJMSUNfUE9SVDotODB9XCJcbiAgICAgICAgVklURV9SRVZFUkJfU0NIRU1FOiBcIiR7VFJZUE9TVF9QVUJMSUNfU0NIRU1FOi1odHRwfVwiXG4gICAgICAgIFZJVEVfUkVWRVJCX0FQUF9LRVk6IFwiJHtSRVZFUkJfQVBQX0tFWTo/S2VlcCB0aGUgZ2VuZXJhdGVkIFJldmVyYiBrZXl9XCJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuICAgIGVudl9maWxlOlxuICAgICAgLSBwYXRoOiAuZW52XG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZVxuICAgIGVudmlyb25tZW50OlxuICAgICAgQVBQX0VOVjogcHJvZHVjdGlvblxuICAgICAgQVBQX0RFQlVHOiBcImZhbHNlXCJcbiAgICAgIEFQUF9LRVk6IFwiJHtBUFBfS0VZOj9LZWVwIHRoZSBnZW5lcmF0ZWQgQVBQX0tFWX1cIlxuICAgICAgQVBQX1VSTDogXCIke0FQUF9VUkw6P1NldCBBUFBfVVJMfVwiXG4gICAgICBTRUxGX0hPU1RFRDogXCJ0cnVlXCJcbiAgICAgIFRSWVBPU1RfVEFSR0VUOiBwcm9kdWN0aW9uXG4gICAgICBEQl9DT05ORUNUSU9OOiBwZ3NxbFxuICAgICAgREJfSE9TVDogdHJ5cG9zdC1wb3N0Z3Jlc1xuICAgICAgREJfUE9SVDogXCI1NDMyXCJcbiAgICAgIERCX0RBVEFCQVNFOiB0cnlwb3N0XG4gICAgICBEQl9VU0VSTkFNRTogdHJ5cG9zdFxuICAgICAgREJfUEFTU1dPUkQ6IFwiJHtEQl9QQVNTV09SRDo/S2VlcCB0aGUgZ2VuZXJhdGVkIGRhdGFiYXNlIHBhc3N3b3JkfVwiXG4gICAgICBSRURJU19IT1NUOiB0cnlwb3N0LXJlZGlzXG4gICAgICBSRURJU19QT1JUOiBcIjYzNzlcIlxuICAgICAgUkVESVNfUEFTU1dPUkQ6IFwiJHtSRURJU19QQVNTV09SRDo/S2VlcCB0aGUgZ2VuZXJhdGVkIFJlZGlzIHBhc3N3b3JkfVwiXG4gICAgICBRVUVVRV9DT05ORUNUSU9OOiByZWRpc1xuICAgICAgQ0FDSEVfU1RPUkU6IHJlZGlzXG4gICAgICBTRVNTSU9OX0RSSVZFUjogZGF0YWJhc2VcbiAgICAgIFNFU1NJT05fU0VDVVJFX0NPT0tJRTogXCIke1NFU1NJT05fU0VDVVJFX0NPT0tJRTotZmFsc2V9XCJcbiAgICAgIEJST0FEQ0FTVF9DT05ORUNUSU9OOiByZXZlcmJcbiAgICAgIFJFVkVSQl9BUFBfSUQ6IFwiJHtSRVZFUkJfQVBQX0lEOj9LZWVwIHRoZSBnZW5lcmF0ZWQgUmV2ZXJiIGFwcCBJRH1cIlxuICAgICAgUkVWRVJCX0FQUF9LRVk6IFwiJHtSRVZFUkJfQVBQX0tFWTo/S2VlcCB0aGUgZ2VuZXJhdGVkIFJldmVyYiBrZXl9XCJcbiAgICAgIFJFVkVSQl9BUFBfU0VDUkVUOiBcIiR7UkVWRVJCX0FQUF9TRUNSRVQ6P0tlZXAgdGhlIGdlbmVyYXRlZCBSZXZlcmIgc2VjcmV0fVwiXG4gICAgICAjIFNlcnZlciBicm9hZGNhc3RzIHN0YXkgaW5zaWRlIHRoZSBjb250YWluZXI7IGJyb3dzZXIgdXNlcyBidWlsZCBhcmdzLlxuICAgICAgUkVWRVJCX0hPU1Q6IDEyNy4wLjAuMVxuICAgICAgUkVWRVJCX1BPUlQ6IFwiODA4MFwiXG4gICAgICBSRVZFUkJfU0NIRU1FOiBodHRwXG4gICAgICBQQVNTUE9SVF9QUklWQVRFX0tFWTogZmlsZTovLy92YXIvd3d3L2h0bWwvc3RvcmFnZS9vYXV0aC1wcml2YXRlLmtleVxuICAgICAgUEFTU1BPUlRfUFVCTElDX0tFWTogZmlsZTovLy92YXIvd3d3L2h0bWwvc3RvcmFnZS9vYXV0aC1wdWJsaWMua2V5XG4gICAgICBGSUxFU1lTVEVNX0RJU0s6IFwiJHtGSUxFU1lTVEVNX0RJU0s6LXB1YmxpY31cIlxuICAgICAgTUFJTF9NQUlMRVI6IFwiJHtNQUlMX01BSUxFUjotbG9nfVwiXG4gICAgICBMT0dfQ0hBTk5FTDogXCIke0xPR19DSEFOTkVMOi1zdGRlcnJ9XCJcbiAgICAgIExPR19MRVZFTDogXCIke0xPR19MRVZFTDotaW5mb31cIlxuICAgICAgTklHSFRXQVRDSF9FTkFCTEVEOiBcImZhbHNlXCJcbiAgICAgIFRFTEVTQ09QRV9FTkFCTEVEOiBcImZhbHNlXCJcbiAgICAgIFBPU1RIT0dfRU5BQkxFRDogXCJmYWxzZVwiXG4gICAgZW50cnlwb2ludDogW1wiL2Jpbi9zaFwiLCBcIi1lY1wiXVxuICAgIGNvbW1hbmQ6XG4gICAgICAtIHxcbiAgICAgICAgY2QgL3Zhci93d3cvaHRtbFxuICAgICAgICBpZiBbICEgLWYgc3RvcmFnZS9vYXV0aC1wcml2YXRlLmtleSBdICYmIFsgISAtZiBzdG9yYWdlL29hdXRoLXB1YmxpYy5rZXkgXTsgdGhlblxuICAgICAgICAgIHBocCBhcnRpc2FuIHBhc3Nwb3J0OmtleXMgLS1uby1pbnRlcmFjdGlvblxuICAgICAgICBlbGlmIFsgISAtcyBzdG9yYWdlL29hdXRoLXByaXZhdGUua2V5IF0gfHwgWyAhIC1zIHN0b3JhZ2Uvb2F1dGgtcHVibGljLmtleSBdOyB0aGVuXG4gICAgICAgICAgZWNobyAnSW5jb21wbGV0ZSBQYXNzcG9ydCBrZXkgcGFpcjogcmVzdG9yZSBib3RoIGtleXMgZnJvbSBiYWNrdXAuJyA+JjJcbiAgICAgICAgICBleGl0IDFcbiAgICAgICAgZmlcbiAgICAgICAgcGhwIGFydGlzYW4gbWlncmF0ZSAtLWZvcmNlIC0tbm8taW50ZXJhY3Rpb25cbiAgICAgICAgcGhwIDw8J1BIUCdcbiAgICAgICAgPD9waHBcbiAgICAgICAgcmVxdWlyZSAndmVuZG9yL2F1dG9sb2FkLnBocCc7XG4gICAgICAgICQkYXBwID0gcmVxdWlyZSAnYm9vdHN0cmFwL2FwcC5waHAnO1xuICAgICAgICAkJGFwcC0+bWFrZShJbGx1bWluYXRlXFxDb250cmFjdHNcXENvbnNvbGVcXEtlcm5lbDo6Y2xhc3MpLT5ib290c3RyYXAoKTtcbiAgICAgICAgaWYgKCEgQXBwXFxNb2RlbHNcXFVzZXI6OnF1ZXJ5KCktPmV4aXN0cygpKSB7XG4gICAgICAgICAgICAkJGVtYWlsID0gZ2V0ZW52KCdJTklUSUFMX1VTRVJfRU1BSUwnKTtcbiAgICAgICAgICAgICQkcGFzc3dvcmQgPSBnZXRlbnYoJ0lOSVRJQUxfVVNFUl9QQVNTV09SRCcpO1xuICAgICAgICAgICAgaWYgKCEgZmlsdGVyX3ZhcigkJGVtYWlsLCBGSUxURVJfVkFMSURBVEVfRU1BSUwpIHx8IHN0cmxlbigkJHBhc3N3b3JkID86ICcnKSA8IDE2KSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oJ1NldCBJTklUSUFMX1VTRVJfRU1BSUwgYW5kIGEgcGFzc3dvcmQgb2YgYXQgbGVhc3QgMTYgY2hhcmFjdGVycyBmb3IgZmlyc3Qgc3RhcnR1cC4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEFwcFxcQWN0aW9uc1xcVXNlclxcQ3JlYXRlVXNlcjo6ZXhlY3V0ZShbXG4gICAgICAgICAgICAgICAgJ25hbWUnID0+IGdldGVudignSU5JVElBTF9VU0VSX05BTUUnKSA/OiAnQWRtaW5pc3RyYXRvcicsXG4gICAgICAgICAgICAgICAgJ2VtYWlsJyA9PiAkJGVtYWlsLFxuICAgICAgICAgICAgICAgICdwYXNzd29yZCcgPT4gJCRwYXNzd29yZCxcbiAgICAgICAgICAgICAgICAnZW1haWxfdmVyaWZpZWRfYXQnID0+IG5vdygpLFxuICAgICAgICAgICAgXSk7XG4gICAgICAgIH1cbiAgICAgICAgUEhQXG4gICAgICAgIGV4ZWMgL3Vzci9sb2NhbC9iaW4vZW50cnlwb2ludC5zaFxuICAgIGV4cG9zZTpcbiAgICAgIC0gXCI4MFwiXG4gICAgdm9sdW1lczpcbiAgICAgIC0gdHJ5cG9zdC1zdG9yYWdlOi92YXIvd3d3L2h0bWwvc3RvcmFnZVxuICAgIGRlcGVuZHNfb246XG4gICAgICB0cnlwb3N0LXBvc3RncmVzOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuICAgICAgdHJ5cG9zdC1yZWRpczpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6IFtcIkNNRFwiLCBcImN1cmxcIiwgXCItLWZhaWxcIiwgXCItLXNpbGVudFwiLCBcImh0dHA6Ly8xMjcuMC4wLjEvdXBcIl1cbiAgICAgIHN0YXJ0X3BlcmlvZDogMTIwc1xuICAgICAgaW50ZXJ2YWw6IDMwc1xuICAgICAgdGltZW91dDogMTBzXG4gICAgICByZXRyaWVzOiA1XG4gICAgc3RvcF9ncmFjZV9wZXJpb2Q6IDYwc1xuICAgIGxvZ2dpbmc6ICZsb2dnaW5nXG4gICAgICBkcml2ZXI6IGpzb24tZmlsZVxuICAgICAgb3B0aW9uczpcbiAgICAgICAgbWF4LXNpemU6IFwiMTBtXCJcbiAgICAgICAgbWF4LWZpbGU6IFwiM1wiXG5cbiAgdHJ5cG9zdC1wb3N0Z3JlczpcbiAgICBpbWFnZTogcG9zdGdyZXM6MTguNi1ib29rd29ybVxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICBQT1NUR1JFU19EQjogdHJ5cG9zdFxuICAgICAgUE9TVEdSRVNfVVNFUjogdHJ5cG9zdFxuICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6IFwiJHtEQl9QQVNTV09SRDo/S2VlcCB0aGUgZ2VuZXJhdGVkIGRhdGFiYXNlIHBhc3N3b3JkfVwiXG4gICAgdm9sdW1lczpcbiAgICAgIC0gdHJ5cG9zdC1wb3N0Z3JlczovdmFyL2xpYi9wb3N0Z3Jlc3FsXG4gICAgaGVhbHRoY2hlY2s6XG4gICAgICB0ZXN0OiBbXCJDTUQtU0hFTExcIiwgXCJwZ19pc3JlYWR5IC1VIHRyeXBvc3QgLWQgdHJ5cG9zdFwiXVxuICAgICAgaW50ZXJ2YWw6IDEwc1xuICAgICAgdGltZW91dDogNXNcbiAgICAgIHJldHJpZXM6IDVcbiAgICAgIHN0YXJ0X3BlcmlvZDogMjBzXG4gICAgc3RvcF9ncmFjZV9wZXJpb2Q6IDYwc1xuICAgIGxvZ2dpbmc6ICpsb2dnaW5nXG5cbiAgdHJ5cG9zdC1yZWRpczpcbiAgICBpbWFnZTogcmVkaXM6OC4xMC4yLWFscGluZVxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICBSRURJU19QQVNTV09SRDogXCIke1JFRElTX1BBU1NXT1JEOj9LZWVwIHRoZSBnZW5lcmF0ZWQgUmVkaXMgcGFzc3dvcmR9XCJcbiAgICAgIFJFRElTQ0xJX0FVVEg6IFwiJHtSRURJU19QQVNTV09SRDo/S2VlcCB0aGUgZ2VuZXJhdGVkIFJlZGlzIHBhc3N3b3JkfVwiXG4gICAgY29tbWFuZDogW1wiL2Jpbi9zaFwiLCBcIi1lY1wiLCBcImV4ZWMgcmVkaXMtc2VydmVyIC0tcmVxdWlyZXBhc3MgXFxcIiQkUkVESVNfUEFTU1dPUkRcXFwiIC0tYXBwZW5kb25seSB5ZXMgLS1tYXhtZW1vcnktcG9saWN5IG5vZXZpY3Rpb25cIl1cbiAgICB2b2x1bWVzOlxuICAgICAgLSB0cnlwb3N0LXJlZGlzOi9kYXRhXG4gICAgaGVhbHRoY2hlY2s6XG4gICAgICB0ZXN0OiBbXCJDTURcIiwgXCJyZWRpcy1jbGlcIiwgXCJwaW5nXCJdXG4gICAgICBpbnRlcnZhbDogMTBzXG4gICAgICB0aW1lb3V0OiA1c1xuICAgICAgcmV0cmllczogNVxuICAgICAgc3RhcnRfcGVyaW9kOiAxMHNcbiAgICBzdG9wX2dyYWNlX3BlcmlvZDogMzBzXG4gICAgbG9nZ2luZzogKmxvZ2dpbmdcblxudm9sdW1lczpcbiAgdHJ5cG9zdC1zdG9yYWdlOlxuICB0cnlwb3N0LXBvc3RncmVzOlxuICB0cnlwb3N0LXJlZGlzOiIsCiAgImNvbmZpZyI6ICJbdmFyaWFibGVzXVxubWFpbl9kb21haW4gPSBcIiR7ZG9tYWlufVwiXG5hcHBfa2V5ID0gXCIke2Jhc2U2NDozMn1cIlxuZGF0YWJhc2VfcGFzc3dvcmQgPSBcIiR7cGFzc3dvcmQ6NDh9XCJcbnJlZGlzX3Bhc3N3b3JkID0gXCIke3Bhc3N3b3JkOjQ4fVwiXG5yZXZlcmJfa2V5ID0gXCIke2hhc2g6MzJ9XCJcbnJldmVyYl9zZWNyZXQgPSBcIiR7cGFzc3dvcmQ6NjR9XCJcbnJldmVyYl9hcHBfaWQgPSBcIiR7dXVpZH1cIlxuaW5pdGlhbF9wYXNzd29yZCA9IFwiJHtwYXNzd29yZDozMn1cIlxuXG5bY29uZmlnXVxuZW52ID0gW1xuICBcIlRSWVBPU1RfSE9TVD0ke21haW5fZG9tYWlufVwiLFxuICBcIkFQUF9VUkw9aHR0cDovLyR7bWFpbl9kb21haW59XCIsXG4gIFwiQVBQX0tFWT1iYXNlNjQ6JHthcHBfa2V5fVwiLFxuICBcIkRCX1BBU1NXT1JEPSR7ZGF0YWJhc2VfcGFzc3dvcmR9XCIsXG4gIFwiUkVESVNfUEFTU1dPUkQ9JHtyZWRpc19wYXNzd29yZH1cIixcbiAgXCJSRVZFUkJfQVBQX0lEPSR7cmV2ZXJiX2FwcF9pZH1cIixcbiAgXCJSRVZFUkJfQVBQX0tFWT0ke3JldmVyYl9rZXl9XCIsXG4gIFwiUkVWRVJCX0FQUF9TRUNSRVQ9JHtyZXZlcmJfc2VjcmV0fVwiLFxuICBcIlRSWVBPU1RfUFVCTElDX1NDSEVNRT1odHRwXCIsXG4gIFwiVFJZUE9TVF9QVUJMSUNfUE9SVD04MFwiLFxuICBcIlNFU1NJT05fU0VDVVJFX0NPT0tJRT1mYWxzZVwiLFxuICBcIklOSVRJQUxfVVNFUl9FTUFJTD1hZG1pbkBleGFtcGxlLmNvbVwiLFxuICBcIklOSVRJQUxfVVNFUl9QQVNTV09SRD0ke2luaXRpYWxfcGFzc3dvcmR9XCIsXG4gIFwiSU5JVElBTF9VU0VSX05BTUU9QWRtaW5pc3RyYXRvclwiLFxuICBcIk1BSUxfTUFJTEVSPWxvZ1wiXG5dXG5cbltbY29uZmlnLmRvbWFpbnNdXVxuc2VydmljZU5hbWUgPSBcInRyeXBvc3RcIlxucG9ydCA9IDgwXG5ob3N0ID0gXCIke21haW5fZG9tYWlufVwiIgp9

Configuration

The exact Docker Compose and template configuration this template deploys.

Instructions

TryPost

Deploys TryPost 2.0.0, requested in #1214, with PostgreSQL, authenticated Redis, persistent media/API keys, Horizon workers, the scheduler, and Reverb WebSockets.

First deployment

  1. Import the template into a Dokploy Docker Compose service. Change INITIAL_USER_EMAIL to your address before deploying. The generated INITIAL_USER_PASSWORD is the first login password; keep all generated application/database/Redis/Reverb secrets.

  2. Point your domain at Dokploy and configure HTTPS in Domains, with the trypost service on port 80. Set these environment values before using real accounts:

    dotenv

    TRYPOST_HOST contains only the hostname. The generated HTTP domain and port 80 support initial local checks. For a custom public port, include it in APP_URL and set TRYPOST_PUBLIC_PORT to the same value.

  3. Deploy and allow the asset build and database migrations to finish. The template starts from the official versioned image and rebuilds only its browser assets, because the published bundle points WebSockets at localhost:8080. It leaves the application source and production PHP dependencies intact. A build-capable Docker Compose installation is required. Allow several minutes and sufficient RAM/disk for the first build.

  4. Open the domain and sign in using INITIAL_USER_EMAIL and the generated password from Dokploy Environment. The template creates this verified user and workspace only when the database has no users. Public registration stays disabled in upstream self-hosted mode. Changing these bootstrap variables later does not reset an existing account or password; use the app's account settings/password recovery instead. After the first successful deployment, the initial password variable can be removed.

  5. Finish any welcome steps, connect the platforms you use, and create a draft or schedule a test post. Additional users join through invitations. Configure delivered email before relying on invitations or password recovery.

The public hostname, scheme, port, and Reverb public key are browser build inputs. After changing any of them, redeploy with a rebuild; changing only runtime VITE_* variables cannot alter compiled assets. Both the app and WebSockets use the same domain/port through the bundled Nginx proxy; do not expose Redis, PostgreSQL, or Reverb's internal port 8080.

Required and optional configuration

Dokploy generates APP_KEY, DB_PASSWORD, REDIS_PASSWORD, REVERB_APP_ID, REVERB_APP_KEY, REVERB_APP_SECRET, and the first-user password. On first startup, RSA signing keys are generated once into the persistent storage volume and loaded through Passport's file:// settings. A partial/missing key pair after setup must be restored from backup; never replace a valid pair during an upgrade.

No Telegram, SMTP, AI, Stripe, or social-provider credentials are required to start or log in. SELF_HOSTED=true bypasses cloud billing, and telemetry is disabled. Add only the integrations you need in Dokploy Environment; the optional .env is passed through to the container. Redeploy after runtime changes so Laravel's configuration cache is rebuilt. See the environment reference for the full versioned inventory and defaults.

Optional email

The default MAIL_MAILER=log records messages without delivering them. The initial user is provisioned as verified, so a mail server is not needed for first login. For invitations and password resets, configure your SMTP provider and test delivery:

dotenv

Use your provider's TLS settings (smtps and port 465 for implicit TLS). API transports can use the supported Postmark, Resend, or SES credentials instead.

Optional publishing and other services

OAuth publishing integrations need the provider's client ID, client secret, and exact callback URI registered in its developer portal. Use the *_CLIENT_REDIRECT variable names for this application:

PlatformVariable prefixCallback path on APP_URL
LinkedInLINKEDIN/accounts/linkedin/callback
XX/accounts/x/callback
TikTokTIKTOK/accounts/tiktok/callback
YouTubeGOOGLE/accounts/youtube/callback
FacebookFACEBOOK/accounts/facebook/callback
InstagramINSTAGRAM/accounts/instagram/callback
ThreadsTHREADS/accounts/threads/callback
PinterestPINTEREST/accounts/pinterest/callback
DiscordDISCORD/accounts/discord/callback
Google BusinessGOOGLE_BUSINESS/accounts/google-business/callback

Discord additionally needs DISCORD_BOT_TOKEN. Telegram publishing uses TELEGRAM_BOT_TOKEN, TELEGRAM_BOT_USERNAME, and TELEGRAM_WEBHOOK_SECRET; only configure it if you want Telegram. Follow upstream's webhook setup when enabling it. Bluesky/Mastodon use their connection flows in the UI. Provider app review, scopes, account eligibility, and public HTTPS still apply. Google/GitHub social login is separate from publishing and disabled by default.

AI features need the selected provider's API key; media imports need the selected service's credentials. Local public media storage works without S3/R2. When selecting object storage, provide the matching credentials, bucket, region/endpoint, and public media URL. Social platforms must be able to fetch media from your public HTTPS deployment.

Operations and backups

Use one application replica with the bundled scheduler. The container runs upstream's Nginx, PHP-FPM, Reverb, Horizon, and scheduler processes; its root supervisor performs initialization and PHP-FPM workers use www-data. The web health check covers /up, so also monitor Horizon, Redis, database access, failed jobs, and WebSocket connectivity.

Back up PostgreSQL, Redis, the entire storage volume, and Dokploy Environment together. Storage includes uploaded media and RSA signing keys; APP_KEY is required to decrypt saved credentials. Redis persists queued jobs with AOF. Do not flush it or delete its volume while publishing jobs are pending. Coordinate maintenance around long-running jobs; the container allows a 60-second graceful stop, while some upstream jobs can run longer.

Keep APP_URL, domain settings, and browser build inputs in sync. Rebuild after changes to the public connection settings or the pinned upstream version. Back up before upgrades, read upstream's migration notes, and validate an upgrade against a restored copy first. This template targets a fresh 2.0.0 installation; it does not migrate an existing deployment from another template or version. Test procedures and verified boundaries are in testing.md.

Related Templates

Self-host TryPost in minutes

Dokploy is a free, open source deployment platform. Deploy TryPost and 585+ other templates on your own infrastructure with a single click.