feat: add documentation for connecting social media platforms and getting started guide
This commit is contained in:
parent
8df5f91e54
commit
d080134c65
7 changed files with 309 additions and 151 deletions
169
README.md
169
README.md
|
|
@ -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
91
compose.yaml
Normal 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
|
||||
|
|
@ -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
2
composer.lock
generated
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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"/>
|
||||
|
|
|
|||
Loading…
Reference in a new issue