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! -
-
- - Star on GitHub - + 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 @@ - - +