From d080134c65d690ca2835e994293afd0dccab60a3 Mon Sep 17 00:00:00 2001
From: Paulo Castellano
Date: Sun, 18 Jan 2026 18:57:15 -0300
Subject: [PATCH] feat: add documentation for connecting social media platforms
and getting started guide
---
README.md | 169 +++++++------------------------
compose.yaml | 91 +++++++++++++++++
composer.json | 2 +-
composer.lock | 2 +-
docs/index.md | 2 +-
docs/self-hosting/docker.md | 191 +++++++++++++++++++++++++++++++++---
phpunit.xml | 3 +-
7 files changed, 309 insertions(+), 151 deletions(-)
create mode 100644 compose.yaml
diff --git a/README.md b/README.md
index 6a53f435..03a4799f 100644
--- a/README.md
+++ b/README.md
@@ -21,35 +21,36 @@
- Features β’
- Platforms β’
- Quick Start β’
- Self-Hosting β’
- Contributing
+ π Documentation β’
+ πΊοΈ Roadmap β’
+ π¬ Community
---
-## Why TryPost?
+## π€ Why TryPost?
Tired of paying expensive monthly fees for social media scheduling tools? Want full control over your data? TryPost is the solution.
-- **100% Open Source** - Inspect the code, contribute, make it yours
-- **Self-Hosted** - Your data stays on your servers
-- **No Limits** - Schedule unlimited posts, connect unlimited accounts
-- **Privacy First** - No tracking, no analytics, no data selling
+| | |
+|---|---|
+| π **100% Open Source** | Inspect the code, contribute, make it yours |
+| π **Self-Hosted** | Your data stays on your servers |
+| βΎοΈ **No Limits** | Schedule unlimited posts, connect unlimited accounts |
+| π **Privacy First** | No tracking, no analytics, no data selling |
-## Features
+## β¨ Features
-- **Visual Calendar** - Drag and drop posts across your content calendar
-- **Post Composer** - Create and preview posts for multiple platforms at once
-- **Media Library** - Upload images and videos with automatic optimization
-- **Team Collaboration** - Invite team members with role-based permissions
-- **Workspaces** - Manage multiple brands or clients separately
-- **Smart Scheduling** - Schedule posts for optimal engagement times
-- **Multi-Platform Preview** - See exactly how your post will look on each platform
+| | |
+|---|---|
+| π
**Visual Calendar** | Drag and drop posts across your content calendar |
+| βοΈ **Post Composer** | Create and preview posts for multiple platforms at once |
+| πΌοΈ **Media Library** | Upload images and videos with automatic optimization |
+| π₯ **Team Collaboration** | Invite team members with role-based permissions |
+| π’ **Workspaces** | Manage multiple brands or clients separately |
+| π **Multi-Platform Preview** | See exactly how your post will look on each platform |
-## Supported Platforms
+## π Supported Platforms
@@ -68,132 +69,34 @@ ## Supported Platforms
-## Quick Start
+## π Getting Started
-### Requirements
+Get TryPost running in minutes:
-- PHP 8.2+
-- Node.js 18+
-- MySQL 8.0+ or PostgreSQL 14+
-- Redis
-- Composer
+| | |
+|---|---|
+| π [Installation Guide](https://docs.trypost.it/getting-started/installation) | Step-by-step setup |
+| π³ [Docker Setup](https://docs.trypost.it/self-hosting/docker) | Run with Laravel Sail |
+| βοΈ [Configuration](https://docs.trypost.it/getting-started/configuration) | Environment setup |
+| π [Platform Setup](https://docs.trypost.it/platforms/) | Connect your social accounts |
-### Installation
+## π€ Contributing
-```bash
-# Clone the repository
-git clone https://github.com/trypost-it/trypost.git
-cd trypost
+We love contributions! See our [Contributing Guide](https://docs.trypost.it/contributing) to get started.
-# Install dependencies
-composer install
-npm install
+- π¬ [Discussions](https://github.com/trypost-it/trypost/discussions) - Ask questions, share ideas
+- π [Issues](https://github.com/trypost-it/trypost/issues) - Report bugs, request features
-# Setup environment
-cp .env.example .env
-php artisan key:generate
-
-# Configure your database in .env, then run migrations
-php artisan migrate --seed
-
-# Build assets
-npm run build
-
-# Start the server
-php artisan serve
-```
-
-Visit `http://localhost:8000` and create your account!
-
-## Self-Hosting
-
-TryPost is designed to be self-hosted. Enable self-hosted mode in your `.env`:
-
-```env
-SELF_HOSTED=true
-```
-
-This skips payment/subscription requirements and gives you full access.
-
-### Running in Production
-
-```bash
-# Start the queue worker
-php artisan horizon
-
-# Or use the watcher for development
-php artisan horizon:watch
-```
-
-### Docker (Coming Soon)
-
-```bash
-docker-compose up -d
-```
-
-## Tech Stack
-
-| Layer | Technology |
-|-------|------------|
-| **Backend** | Laravel 12, PHP 8.4 |
-| **Frontend** | Vue 3, Inertia.js, TypeScript |
-| **Styling** | Tailwind CSS 4 |
-| **Database** | MySQL / PostgreSQL |
-| **Queue** | Redis + Laravel Horizon |
-| **Real-time** | Laravel Reverb |
-
-## Roadmap
-
-Check out our [public roadmap](https://github.com/orgs/trypost-it/projects/1) to see what's coming next and vote on features!
-
-## Contributing
-
-We love contributions! Whether it's:
-
-- Bug reports
-- Feature requests
-- Documentation improvements
-- Code contributions
-
-### Development Setup
-
-```bash
-# Install dependencies
-composer install
-npm install
-
-# Start development server
-npm run dev
-
-# Run tests
-php artisan test
-```
-
-## Community
-
-- [GitHub Discussions](https://github.com/trypost-it/trypost/discussions) - Ask questions, share ideas
-- [GitHub Issues](https://github.com/trypost-it/trypost/issues) - Report bugs, request features
-
-## License
+## π License
TryPost is licensed under the [Functional Source License (FSL)](LICENSE.md).
-**You can:**
-- Use TryPost for personal or internal business use
-- Self-host for your own social media management
-- Modify and contribute to the codebase
+β
**You can:** Use for personal or business use, self-host, modify and contribute.
-**You cannot:**
-- Offer TryPost as a competing SaaS product
-- White-label and resell TryPost
+β **You cannot:** Offer as a competing SaaS, white-label and resell.
---
- If TryPost helps you, please give us a star!
-
-
-
-
-
+ If TryPost helps you, please give us a β
diff --git a/compose.yaml b/compose.yaml
new file mode 100644
index 00000000..f8b765f0
--- /dev/null
+++ b/compose.yaml
@@ -0,0 +1,91 @@
+services:
+ laravel.test:
+ build:
+ context: './vendor/laravel/sail/runtimes/8.5'
+ dockerfile: Dockerfile
+ args:
+ WWWGROUP: '${WWWGROUP}'
+ image: 'sail-8.5/app'
+ extra_hosts:
+ - 'host.docker.internal:host-gateway'
+ ports:
+ - '${APP_PORT:-80}:80'
+ - '${VITE_PORT:-5173}:${VITE_PORT:-5173}'
+ environment:
+ WWWUSER: '${WWWUSER}'
+ LARAVEL_SAIL: 1
+ XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
+ XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
+ IGNITION_LOCAL_SITES_PATH: '${PWD}'
+ volumes:
+ - '.:/var/www/html'
+ networks:
+ - sail
+ depends_on:
+ - pgsql
+ - redis
+ - mailpit
+ - selenium
+ pgsql:
+ image: 'postgres:18-alpine'
+ ports:
+ - '${FORWARD_DB_PORT:-5432}:5432'
+ environment:
+ PGPASSWORD: '${DB_PASSWORD:-secret}'
+ POSTGRES_DB: '${DB_DATABASE}'
+ POSTGRES_USER: '${DB_USERNAME}'
+ POSTGRES_PASSWORD: '${DB_PASSWORD:-secret}'
+ volumes:
+ - 'sail-pgsql:/var/lib/postgresql'
+ - './vendor/laravel/sail/database/pgsql/create-testing-database.sql:/docker-entrypoint-initdb.d/10-create-testing-database.sql'
+ networks:
+ - sail
+ healthcheck:
+ test:
+ - CMD
+ - pg_isready
+ - '-q'
+ - '-d'
+ - '${DB_DATABASE}'
+ - '-U'
+ - '${DB_USERNAME}'
+ retries: 3
+ timeout: 5s
+ redis:
+ image: 'redis:alpine'
+ ports:
+ - '${FORWARD_REDIS_PORT:-6379}:6379'
+ volumes:
+ - 'sail-redis:/data'
+ networks:
+ - sail
+ healthcheck:
+ test:
+ - CMD
+ - redis-cli
+ - ping
+ retries: 3
+ timeout: 5s
+ mailpit:
+ image: 'axllent/mailpit:latest'
+ ports:
+ - '${FORWARD_MAILPIT_PORT:-1025}:1025'
+ - '${FORWARD_MAILPIT_DASHBOARD_PORT:-8025}:8025'
+ networks:
+ - sail
+ selenium:
+ image: selenium/standalone-chromium
+ extra_hosts:
+ - 'host.docker.internal:host-gateway'
+ volumes:
+ - '/dev/shm:/dev/shm'
+ networks:
+ - sail
+networks:
+ sail:
+ driver: bridge
+volumes:
+ sail-pgsql:
+ driver: local
+ sail-redis:
+ driver: local
diff --git a/composer.json b/composer.json
index c80ae0fe..e0ae41db 100644
--- a/composer.json
+++ b/composer.json
@@ -35,7 +35,7 @@
"laravel/boost": "^1.8",
"laravel/pail": "^1.2.2",
"laravel/pint": "^1.24",
- "laravel/sail": "^1.41",
+ "laravel/sail": "*",
"mockery/mockery": "^1.6",
"nunomaduro/collision": "^8.6",
"pestphp/pest": "^4.3",
diff --git a/composer.lock b/composer.lock
index dbaf0e04..648837d5 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "6afc160a26be910e0994d4a9ceea451c",
+ "content-hash": "a8cb995fdd4ce6be2997e5befaa457cc",
"packages": [
{
"name": "aws/aws-crt-php",
diff --git a/docs/index.md b/docs/index.md
index dfb280b4..b0d835fd 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -40,7 +40,7 @@ ## Self-Hosting
- [Requirements](self-hosting/requirements.md)
- [Production Setup](self-hosting/production.md)
-- [Docker](self-hosting/docker.md) *(coming soon)*
+- [Docker](self-hosting/docker.md)
## Contributing
diff --git a/docs/self-hosting/docker.md b/docs/self-hosting/docker.md
index 78ccf808..5793375c 100644
--- a/docs/self-hosting/docker.md
+++ b/docs/self-hosting/docker.md
@@ -6,23 +6,188 @@
# Docker Deployment
-> **Coming Soon:** Docker support is planned but not yet available.
+TryPost includes [Laravel Sail](https://laravel.com/docs/sail), a lightweight Docker development environment.
-## Planned Features
+## Requirements
-- Official Docker image
-- Docker Compose configuration
-- One-command deployment
-- Auto-updates
+- Docker Desktop (Mac, Windows) or Docker Engine (Linux)
+- Docker Compose
-## Want to Help?
+## Quick Start
-If you'd like to contribute Docker support, please:
+### 1. Clone the repository
-1. Check [GitHub Issues](https://github.com/trypost-it/trypost/issues) for existing discussions
-2. Open an issue to discuss your approach
-3. Submit a pull request
+```bash
+git clone https://github.com/trypost-it/trypost.git
+cd trypost
+```
-## Alternative: Manual Deployment
+### 2. Install Composer dependencies
-In the meantime, follow the [Production Setup](production.md) guide for manual deployment.
+You can use a temporary container to install dependencies without PHP on your host:
+
+```bash
+docker run --rm \
+ -u "$(id -u):$(id -g)" \
+ -v "$(pwd):/var/www/html" \
+ -w /var/www/html \
+ laravelsail/php84-composer:latest \
+ composer install --ignore-platform-reqs
+```
+
+### 3. Configure environment
+
+```bash
+cp .env.example .env
+```
+
+Update your `.env` for Docker:
+
+```env
+APP_URL=http://localhost
+
+DB_CONNECTION=pgsql
+DB_HOST=pgsql
+DB_PORT=5432
+DB_DATABASE=trypost
+DB_USERNAME=sail
+DB_PASSWORD=password
+
+REDIS_HOST=redis
+```
+
+### 4. Generate the Docker Compose file
+
+```bash
+php artisan sail:install
+```
+
+Select the services you need:
+- **pgsql** - PostgreSQL database (recommended)
+- **redis** - Required for queues and caching
+- **meilisearch** - Optional, for search functionality
+
+### 5. Start the containers
+
+```bash
+./vendor/bin/sail up -d
+```
+
+### 6. Generate application key
+
+```bash
+./vendor/bin/sail artisan key:generate
+```
+
+### 7. Run migrations
+
+```bash
+./vendor/bin/sail artisan migrate
+```
+
+### 8. Build frontend assets
+
+```bash
+./vendor/bin/sail npm install
+./vendor/bin/sail npm run build
+```
+
+## Accessing TryPost
+
+Once running, access TryPost at: `http://localhost`
+
+## Common Commands
+
+```bash
+# Start containers
+./vendor/bin/sail up -d
+
+# Stop containers
+./vendor/bin/sail down
+
+# View logs
+./vendor/bin/sail logs
+
+# Run Artisan commands
+./vendor/bin/sail artisan
+
+# Run npm commands
+./vendor/bin/sail npm
+
+# Access PostgreSQL
+./vendor/bin/sail psql
+
+# Access Redis CLI
+./vendor/bin/sail redis
+```
+
+## Running the Queue Worker
+
+For background job processing:
+
+```bash
+./vendor/bin/sail artisan horizon
+```
+
+Or run it in a separate terminal:
+
+```bash
+./vendor/bin/sail up -d
+./vendor/bin/sail artisan horizon
+```
+
+## Shell Alias
+
+Add this alias to your shell profile (`~/.bashrc`, `~/.zshrc`):
+
+```bash
+alias sail='./vendor/bin/sail'
+```
+
+Then you can use:
+
+```bash
+sail up -d
+sail artisan migrate
+sail npm run dev
+```
+
+## Production with Docker
+
+For production deployments with Docker, you'll want to:
+
+1. Use a production-ready Docker Compose configuration
+2. Set `APP_ENV=production` and `APP_DEBUG=false`
+3. Use proper SSL termination (nginx, Traefik, etc.)
+4. Configure persistent volumes for storage
+5. Set up proper logging and monitoring
+
+See the [Production Setup](production.md) guide for more details on production configurations.
+
+## Troubleshooting
+
+### Port conflicts
+
+If port 80 is already in use, change the `APP_PORT` in `.env`:
+
+```env
+APP_PORT=8080
+```
+
+### Permission issues
+
+On Linux, you may need to run:
+
+```bash
+sudo chown -R $USER: .
+```
+
+### Database connection refused
+
+Make sure the database container is running:
+
+```bash
+./vendor/bin/sail ps
+```
+
+Wait a few seconds after starting for the database to initialize.
diff --git a/phpunit.xml b/phpunit.xml
index d7032415..bbfcf81d 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -23,8 +23,7 @@
-
-
+