feat: add documentation for connecting social media platforms and getting started guide

This commit is contained in:
Paulo Castellano 2026-01-18 18:57:15 -03:00
parent 8df5f91e54
commit d080134c65
7 changed files with 309 additions and 151 deletions

169
README.md
View file

@ -21,35 +21,36 @@
</p>
<p align="center">
<a href="#features">Features</a> •
<a href="#supported-platforms">Platforms</a> •
<a href="#quick-start">Quick Start</a> •
<a href="#self-hosting">Self-Hosting</a> •
<a href="#contributing">Contributing</a>
<a href="https://docs.trypost.it">📚 Documentation</a> •
<a href="https://github.com/orgs/trypost-it/projects/1">🗺️ Roadmap</a> •
<a href="https://github.com/trypost-it/trypost/discussions">💬 Community</a>
</p>
---
## 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
<table>
<tr>
@ -68,132 +69,34 @@ ## Supported Platforms
</tr>
</table>
## 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.
---
<p align="center">
<strong>If TryPost helps you, please give us a star!</strong>
<br />
<br />
<a href="https://github.com/trypost-it/trypost">
<img src="https://img.shields.io/github/stars/trypost-it/trypost?style=social" alt="Star on GitHub">
</a>
<strong>If TryPost helps you, please give us a ⭐</strong>
</p>

91
compose.yaml Normal file
View file

@ -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

View file

@ -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",

2
composer.lock generated
View file

@ -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",

View file

@ -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

View file

@ -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 <command>
# Run npm commands
./vendor/bin/sail npm <command>
# 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.

View file

@ -23,8 +23,7 @@
<env name="BCRYPT_ROUNDS" value="4"/>
<env name="BROADCAST_CONNECTION" value="null"/>
<env name="CACHE_STORE" value="array"/>
<env name="DB_CONNECTION" value="sqlite"/>
<env name="DB_DATABASE" value=":memory:"/>
<env name="DB_DATABASE" value="testing"/>
<env name="MAIL_MAILER" value="array"/>
<env name="QUEUE_CONNECTION" value="sync"/>
<env name="SESSION_DRIVER" value="array"/>