Merge pull request #7 from trypost-it/chore/remove-docs

Remove docs directory
This commit is contained in:
Paulo Castellano 2026-03-29 17:34:25 -03:00 committed by GitHub
commit e4eba11953
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 0 additions and 1890 deletions

View file

@ -1,31 +0,0 @@
title: TryPost
description: Documentation for TryPost - Open source social media scheduling
remote_theme: just-the-docs/just-the-docs
color_scheme: light
# Logo
logo: "/assets/images/logo.png"
# Search
search_enabled: true
search:
heading_level: 2
previews: 3
# Aux links (top right)
aux_links:
"GitHub":
- "https://github.com/trypost-it/trypost"
aux_links_new_tab: true
# Footer
footer_content: "Copyright &copy; 2025 TryPost. Distributed under the <a href=\"https://github.com/trypost-it/trypost/blob/main/LICENSE.md\">FSL License</a>."
# Back to top link
back_to_top: true
back_to_top_text: "Back to top"
# Exclude files
exclude:
- CNAME

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View file

@ -1,143 +0,0 @@
---
title: Contributing
nav_order: 6
---
# Contributing to TryPost
Thank you for your interest in contributing to TryPost! This guide will help you get started.
## Ways to Contribute
- **Report bugs** - Found a bug? Open an issue
- **Suggest features** - Have an idea? Start a discussion
- **Improve docs** - Fix typos, add examples, clarify instructions
- **Write code** - Fix bugs or implement new features
## Development Setup
### Prerequisites
- PHP 8.2+
- Node.js 18+
- PostgreSQL or MySQL
- Redis
- Composer
### Setup
1. Fork and clone the repository:
```bash
git clone https://github.com/YOUR_USERNAME/trypost.git
cd trypost
```
2. Install dependencies:
```bash
composer install
npm install
```
3. Configure environment:
```bash
cp .env.example .env
php artisan key:generate
```
4. Set up database and run migrations:
```bash
php artisan migrate
```
5. Start development servers:
```bash
# Terminal 1 - Laravel
php artisan serve
# Terminal 2 - Vite
npm run dev
# Terminal 3 - Queue worker
php artisan horizon:watch
```
## Code Style
### PHP
We use [Laravel Pint](https://laravel.com/docs/pint) for PHP code formatting:
```bash
# Check code style
vendor/bin/pint --test
# Fix code style
vendor/bin/pint
```
### JavaScript/TypeScript
We use ESLint and Prettier:
```bash
# Lint
npm run lint
# Format
npm run format
```
## Testing
Run the test suite before submitting changes:
```bash
php artisan test
```
## Pull Request Process
1. **Create a branch** from `develop`:
```bash
git checkout -b feature/your-feature-name
```
2. **Make your changes** and commit with clear messages
3. **Run tests** and ensure they pass
4. **Run code formatters**:
```bash
vendor/bin/pint
npm run lint
npm run format
```
5. **Push** and create a pull request to the `develop` branch
6. **Describe your changes** in the PR description
## Commit Messages
Write clear commit messages:
- `fix: resolve login redirect issue`
- `feat: add Pinterest scheduling support`
- `docs: update installation guide`
- `refactor: simplify post creation logic`
## Questions?
- [GitHub Discussions](https://github.com/trypost-it/trypost/discussions) - For questions and ideas
- [GitHub Issues](https://github.com/trypost-it/trypost/issues) - For bugs and feature requests
## License
By contributing, you agree that your contributions will be licensed under the same license as the project (FSL).

View file

@ -1,9 +0,0 @@
---
title: Features
has_children: true
nav_order: 4
---
# Features
Learn about TryPost's powerful features.

View file

@ -1,60 +0,0 @@
---
title: Scheduling
parent: Features
nav_order: 1
---
# Scheduling Posts
TryPost makes it easy to schedule your social media content in advance.
## Creating a Scheduled Post
1. Click **Create Post** or click on a date in the calendar
2. Write your content
3. Add media (images or videos) if desired
4. Select the accounts you want to post to
5. Choose the date and time
6. Click **Schedule**
## The Calendar View
The calendar shows all your scheduled posts:
- **Drag and drop** posts to reschedule them
- **Click** on a post to view, edit, or delete it
- **Filter** by account or status
- **Switch views** between month, week, or day
## Post Status
Posts can have the following statuses:
| Status | Description |
|--------|-------------|
| **Draft** | Saved but not scheduled |
| **Scheduled** | Waiting to be published |
| **Publishing** | Currently being sent to platforms |
| **Published** | Successfully posted |
| **Failed** | Failed to publish (check error details) |
## Multi-Platform Posting
You can post to multiple platforms at once:
1. Select multiple accounts when creating a post
2. TryPost will adapt the content for each platform
3. Each platform's post is tracked separately
## Best Times to Post
Consider your audience's timezone and activity patterns when scheduling. General guidelines:
- **LinkedIn**: Tuesday-Thursday, 9am-12pm
- **X/Twitter**: Weekdays, 8am-10am and 6pm-9pm
- **Instagram**: Monday-Friday, 11am-1pm and 7pm-9pm
- **Facebook**: Wednesday-Friday, 1pm-4pm
## Queue (Coming Soon)
Future versions will support a post queue where you can add content and let TryPost automatically schedule it at optimal times.

View file

@ -1,64 +0,0 @@
---
title: Team Management
parent: Features
nav_order: 3
---
# Team Management
Invite team members to collaborate on your social media content.
## Inviting Members
1. Go to **Settings** > **Members**
2. Enter the email address of the person you want to invite
3. Select their role
4. Click **Send Invite**
The invited person will receive an email with a link to join your workspace.
## Roles
| Role | Permissions |
|------|-------------|
| **Owner** | Full access, can delete workspace, manage billing |
| **Admin** | Can manage members, accounts, and all posts |
| **Member** | Can create and manage their own posts |
## Managing Members
### View Members
Go to **Settings** > **Members** to see:
- Current members and their roles
- Pending invites
### Remove a Member
1. Go to **Settings** > **Members**
2. Find the member you want to remove
3. Click the remove button
4. Confirm the action
### Cancel an Invite
If someone hasn't accepted their invite yet:
1. Go to **Settings** > **Members**
2. Find the pending invite
3. Click the cancel button
## Accepting an Invite
When you receive an invite:
1. Click the link in the email
2. Log in or create an account (the email will be pre-filled)
3. You'll be automatically added to the workspace
## Best Practices
- Use **Admin** role for managers who need full control
- Use **Member** role for content creators
- Regularly review and remove access for people who no longer need it

View file

@ -1,71 +0,0 @@
---
title: Workspaces
parent: Features
nav_order: 2
---
# Workspaces
Workspaces help you organize your social media accounts, especially if you manage multiple brands or clients.
## What is a Workspace?
A workspace is a container that holds:
- Social media accounts
- Scheduled posts
- Team members
- Settings
Each workspace is completely separate from others.
## Creating a Workspace
1. Click on your current workspace name in the sidebar
2. Click **Create Workspace**
3. Enter a name for the workspace
4. Click **Create**
## Switching Workspaces
Click on the workspace name in the sidebar to see all your workspaces and switch between them.
## Use Cases
### Agencies
Create a workspace for each client:
- Client A Workspace (their social accounts)
- Client B Workspace (their social accounts)
- Your Agency Workspace (your own accounts)
### Multiple Brands
If you manage multiple brands:
- Brand A Workspace
- Brand B Workspace
### Personal vs Business
Separate your personal and business presence:
- Personal Workspace
- Business Workspace
## Workspace Settings
Each workspace has its own settings:
- **Name** - The workspace display name
- **Members** - Who has access (see [Team Management](team.md))
- **Connected Accounts** - Social media accounts in this workspace
## Deleting a Workspace
1. Go to **Settings** > **Workspace**
2. Scroll to the danger zone
3. Click **Delete Workspace**
> **Warning:** This will delete all posts and disconnect all accounts in the workspace. This action cannot be undone.

View file

@ -1,154 +0,0 @@
---
title: Configuration
parent: Getting Started
nav_order: 2
---
# Configuration
TryPost is configured through environment variables in the `.env` file.
## Basic Configuration
```env
APP_NAME="TryPost"
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost
```
| Variable | Description |
|----------|-------------|
| `APP_NAME` | Your application name |
| `APP_ENV` | Environment: `local`, `staging`, `production` |
| `APP_DEBUG` | Enable debug mode (set to `false` in production) |
| `APP_URL` | Your application URL |
## Self-Hosted Mode
```env
SELF_HOSTED=true
```
When `SELF_HOSTED=true`, TryPost runs without any payment or subscription requirements. This is the default for self-hosted installations.
**What changes in self-hosted mode:**
- No Stripe configuration required
- No subscription or payment checks
- Unlimited workspaces per user
- All features available without restrictions
{: .note }
If you're running TryPost as a SaaS with payments, set `SELF_HOSTED=false` and configure Stripe.
## Database
TryPost supports PostgreSQL and MySQL.
### PostgreSQL (recommended)
```env
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=trypost
DB_USERNAME=postgres
DB_PASSWORD=your_password
```
### MySQL
```env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=trypost
DB_USERNAME=root
DB_PASSWORD=your_password
```
## Redis
Redis is required for queues and caching.
```env
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
```
## File Storage
TryPost supports local storage and S3-compatible cloud storage.
### Local Storage (default)
```env
FILESYSTEM_DISK=local
```
### AWS S3
```env
FILESYSTEM_DISK=s3
AWS_ACCESS_KEY_ID=your_key
AWS_SECRET_ACCESS_KEY=your_secret
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=your_bucket
AWS_URL=https://your-bucket.s3.amazonaws.com
```
### Cloudflare R2
```env
FILESYSTEM_DISK=r2
R2_ACCESS_KEY_ID=your_key
R2_SECRET_ACCESS_KEY=your_secret
R2_ENDPOINT=https://your-account.r2.cloudflarestorage.com
R2_REGION=auto
R2_BUCKET=your_bucket
R2_URL=https://your-custom-domain.com
```
### Other S3-Compatible Storage
Any S3-compatible storage (MinIO, DigitalOcean Spaces, etc.) can be used with the `s3` disk configuration.
## Mail
Configure your mail driver for sending emails (invites, notifications).
```env
MAIL_MAILER=smtp
MAIL_HOST=smtp.example.com
MAIL_PORT=587
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"
```
## Social Platforms
Each social platform requires API credentials. See the [Platforms documentation](../platforms/README.md) for setup instructions.
## Horizon (Queue Dashboard)
[Laravel Horizon](https://laravel.com/docs/horizon) provides a dashboard to monitor your queues. Access it at `/horizon`.
```env
HORIZON_ALLOWED_EMAILS=admin@example.com,dev@example.com
```
| Variable | Description |
|----------|-------------|
| `HORIZON_ALLOWED_EMAILS` | Comma-separated list of emails allowed to access Horizon in production |
If not set, Horizon dashboard will be inaccessible in non-local environments.
## Next Steps
- [Connect your social accounts](../platforms/README.md)
- [Create your first post](first-steps.md)

View file

@ -1,56 +0,0 @@
---
title: First Steps
parent: Getting Started
nav_order: 3
---
# First Steps
After installing TryPost, follow these steps to start scheduling your social media posts.
## 1. Create Your Account
Visit your TryPost installation and click **Register** to create your account.
## 2. Complete Onboarding
After registration, you'll go through a quick onboarding process:
1. **Select your role** - Choose what best describes you (creator, agency, business, etc.)
2. **Connect accounts** - Connect at least one social media account
## 3. Connect Social Accounts
Click on a platform to connect it:
- Each platform requires API credentials configured in your `.env` file
- See the [Platforms documentation](../platforms/README.md) for setup instructions
- You can connect multiple accounts per platform
## 4. Create Your First Post
1. Click **Create Post** or navigate to the calendar
2. Write your content
3. Select which accounts to post to
4. Choose to post now or schedule for later
5. Click **Schedule** or **Post Now**
## 5. Manage Your Calendar
The calendar view shows all your scheduled posts:
- Drag and drop posts to reschedule
- Click a post to edit or delete it
- Filter by account or status
## Tips
- **Preview your posts** - See how they'll look on each platform before publishing
- **Use workspaces** - Separate different brands or clients
- **Invite team members** - Collaborate with your team
## Next Steps
- [Learn about scheduling](../features/scheduling.md)
- [Set up workspaces](../features/workspaces.md)
- [Invite team members](../features/team.md)

View file

@ -1,9 +0,0 @@
---
title: Getting Started
has_children: true
nav_order: 2
---
# Getting Started
Get up and running with TryPost in minutes.

View file

@ -1,85 +0,0 @@
---
title: Installation
parent: Getting Started
nav_order: 1
---
# Installation
This guide will walk you through installing TryPost on your server.
## Requirements
- PHP 8.2 or higher
- Node.js 18 or higher
- PostgreSQL 14+ or MySQL 8+
- Redis
- Composer
## Quick Install
### 1. Clone the repository
```bash
git clone https://github.com/trypost-it/trypost.git
cd trypost
```
### 2. Install PHP dependencies
```bash
composer install
```
### 3. Install Node.js dependencies
```bash
npm install
```
### 4. Configure environment
```bash
cp .env.example .env
php artisan key:generate
```
Edit the `.env` file with your database credentials and other settings. See [Configuration](configuration.md) for details.
### 5. Run database migrations
```bash
php artisan migrate
```
### 6. Build frontend assets
```bash
npm run build
```
### 7. Start the application
For development:
```bash
# Terminal 1 - Laravel server
php artisan serve
# Terminal 2 - Queue worker
php artisan horizon
# Terminal 3 - Vite dev server (optional, for hot reload)
npm run dev
```
For production, configure your web server (Nginx, Apache) to serve the application.
## Verify Installation
Visit `http://localhost:8000` (or your configured domain) and you should see the TryPost welcome page.
## Next Steps
- [Configure your environment](configuration.md)
- [Connect your first social account](../platforms/README.md)

View file

@ -1,52 +0,0 @@
---
title: Home
layout: home
nav_order: 1
---
# TryPost Documentation
Welcome to the TryPost documentation. Here you'll find everything you need to install, configure, and use TryPost.
## Getting Started
- [Installation](getting-started/installation.md) - Install TryPost on your server
- [Configuration](getting-started/configuration.md) - Configure environment variables
- [First Steps](getting-started/first-steps.md) - Your first post with TryPost
## Platforms
Learn how to connect your social media accounts:
- [Overview](platforms/README.md) - Supported platforms and requirements
- [LinkedIn](platforms/linkedin.md)
- [X (Twitter)](platforms/x-twitter.md)
- [Facebook](platforms/facebook.md)
- [Instagram](platforms/instagram.md)
- [TikTok](platforms/tiktok.md)
- [YouTube](platforms/youtube.md)
- [Threads](platforms/threads.md)
- [Pinterest](platforms/pinterest.md)
- [Bluesky](platforms/bluesky.md)
- [Mastodon](platforms/mastodon.md)
## Features
- [Scheduling Posts](features/scheduling.md)
- [Workspaces](features/workspaces.md)
- [Team Management](features/team.md)
## Self-Hosting
- [Requirements](self-hosting/requirements.md)
- [Production Setup](self-hosting/production.md)
- [Docker](self-hosting/docker.md)
## Contributing
- [Contributing Guide](./contributing.md)
## Support
- [GitHub Issues](https://github.com/trypost-it/trypost/issues) - Report bugs
- [GitHub Discussions](https://github.com/trypost-it/trypost/discussions) - Ask questions

View file

@ -1,60 +0,0 @@
---
title: Platforms
has_children: true
nav_order: 3
---
# Supported Platforms
TryPost supports the following social media platforms:
| Platform | Status | API Requirements |
|----------|--------|------------------|
| [LinkedIn](linkedin.md) | ✅ Full support | OAuth App |
| [X (Twitter)](x-twitter.md) | ✅ Full support | OAuth App |
| [Facebook](facebook.md) | ✅ Full support | Meta App |
| [Instagram](instagram.md) | ✅ Full support | Meta App (Business account required) |
| [TikTok](tiktok.md) | ✅ Full support | TikTok Developer App |
| [YouTube](youtube.md) | ✅ Full support | Google Cloud Project |
| [Threads](threads.md) | ✅ Full support | Meta App |
| [Pinterest](pinterest.md) | ✅ Full support | Pinterest App |
| [Bluesky](bluesky.md) | ✅ Full support | App Password (no OAuth) |
| [Mastodon](mastodon.md) | ✅ Full support | Instance OAuth |
## General Setup
Each platform requires:
1. **Create a developer app** on the platform's developer portal
2. **Configure OAuth credentials** in your `.env` file
3. **Set the callback URL** to `{APP_URL}/accounts/{platform}/callback`
## Callback URLs
When configuring your apps, use these callback URLs (replace `https://your-domain.com` with your actual URL):
| Platform | Callback URL |
|----------|-------------|
| LinkedIn | `https://your-domain.com/accounts/linkedin/callback` |
| LinkedIn Page | `https://your-domain.com/accounts/linkedin-page/callback` |
| X (Twitter) | `https://your-domain.com/accounts/x/callback` |
| TikTok | `https://your-domain.com/accounts/tiktok/callback` |
| Facebook | `https://your-domain.com/accounts/facebook/callback` |
| Instagram | `https://your-domain.com/accounts/instagram/callback` |
| Threads | `https://your-domain.com/accounts/threads/callback` |
| YouTube | `https://your-domain.com/accounts/youtube/callback` |
| Pinterest | `https://your-domain.com/accounts/pinterest/callback` |
| Mastodon | `https://your-domain.com/accounts/mastodon/callback` |
> **Note:** Bluesky doesn't use OAuth. You'll enter your credentials directly in TryPost.
## Disabling Platforms
You can disable specific platforms by setting environment variables:
```env
TRYPOST_LINKEDIN_ENABLED=false
TRYPOST_TIKTOK_ENABLED=false
```
This hides the platform from the connection options.

View file

@ -1,54 +0,0 @@
---
title: Bluesky
parent: Platforms
nav_order: 9
---
# Bluesky
Connect your Bluesky account to TryPost.
## No Developer App Required
Bluesky uses App Passwords instead of OAuth, so you don't need to create a developer app.
## Create an App Password
1. Log in to [Bluesky](https://bsky.app/)
2. Go to **Settings** > **App Passwords**
3. Click **Add App Password**
4. Give it a name (e.g., "TryPost")
5. Copy the generated password
> **Important:** Save this password securely. You won't be able to see it again.
## Connect Your Account
1. In TryPost, go to **Accounts**
2. Click **Connect Bluesky**
3. Enter your Bluesky handle (e.g., `yourname.bsky.social`)
4. Enter the App Password you created
5. Click **Connect**
6. You're ready to post!
## Environment Variables
No environment variables are required for Bluesky. Each user connects with their own app password.
## Supported Features
- ✅ Text posts
- ✅ Image posts (up to 4 images)
- ✅ Link cards
- ✅ Mentions
- ✅ Hashtags
## Custom PDS
If you're using a custom Personal Data Server (PDS), you can enter the full handle including your domain.
## Security
- App Passwords have limited permissions compared to your main password
- You can revoke an App Password at any time from Bluesky settings
- TryPost stores the app password securely encrypted

View file

@ -1,68 +0,0 @@
---
title: Facebook
parent: Platforms
nav_order: 3
---
# Facebook
Connect your Facebook pages to TryPost.
## Create a Meta App
1. Go to [Meta for Developers](https://developers.facebook.com/)
2. Click **My Apps** > **Create App**
3. Select **Business** as the app type
4. Fill in the app details and create the app
## Configure Facebook Login
1. In your app dashboard, add the **Facebook Login** product
2. Go to **Facebook Login** > **Settings**
3. Add your redirect URL: `https://your-domain.com/accounts/facebook/callback`
4. Set **Client OAuth Login** to Yes
5. Set **Web OAuth Login** to Yes
## Configure Permissions
Go to **App Review** > **Permissions and Features** and request:
- `pages_show_list` - To list your pages
- `pages_read_engagement` - To read page data
- `pages_manage_posts` - To create posts
> **Note:** Some permissions require app review for production use.
## Get Your Credentials
1. Go to **Settings** > **Basic**
2. Note your **App ID** and **App Secret**
## Environment Variables
Add to your `.env` file:
```env
FACEBOOK_CLIENT_ID=your_app_id
FACEBOOK_CLIENT_SECRET=your_app_secret
FACEBOOK_CLIENT_REDIRECT="${APP_URL}/accounts/facebook/callback"
```
## Connect Your Page
1. In TryPost, go to **Accounts**
2. Click **Connect Facebook**
3. Log in and authorize the app
4. Select the page(s) you want to connect
5. You're ready to post!
## Supported Features
- ✅ Text posts
- ✅ Image posts
- ✅ Multi-image posts
- ✅ Video posts
- ✅ Link posts
- ✅ Page posting
> **Note:** Personal profile posting is not supported due to Meta API limitations. Only pages can be connected.

View file

@ -1,66 +0,0 @@
---
title: Instagram
parent: Platforms
nav_order: 4
---
# Instagram
Connect your Instagram Business or Creator account to TryPost.
## Requirements
- Instagram Business or Creator account (not personal)
- Facebook Page connected to your Instagram account
- Meta Developer App
## Create a Meta App
If you haven't already, follow the [Facebook setup guide](facebook.md) to create a Meta app.
## Configure Instagram API
1. In your Meta app dashboard, add the **Instagram Graph API** product
2. Go to **Instagram** > **Basic Display** or **Instagram Graph API**
## Configure Permissions
Request these permissions in **App Review**:
- `instagram_basic` - Basic account info
- `instagram_content_publish` - To publish content
- `pages_show_list` - To access linked Facebook page
## Environment Variables
Add to your `.env` file:
```env
INSTAGRAM_CLIENT_ID=your_app_id
INSTAGRAM_CLIENT_SECRET=your_app_secret
INSTAGRAM_CLIENT_REDIRECT="${APP_URL}/accounts/instagram/callback"
```
## Connect Your Account
1. Make sure your Instagram account is:
- Set to Business or Creator account
- Connected to a Facebook Page
2. In TryPost, go to **Accounts**
3. Click **Connect Instagram**
4. Log in with Facebook and authorize
5. Select your Instagram account
6. You're ready to post!
## Supported Features
- ✅ Image posts
- ✅ Carousel posts (multiple images)
- ✅ Video posts (Reels)
- ✅ Captions with hashtags
## Limitations
- Personal accounts cannot be connected (Instagram API limitation)
- Stories are not supported via API
- Direct messages are not supported

View file

@ -1,64 +0,0 @@
---
title: LinkedIn
parent: Platforms
nav_order: 1
---
# LinkedIn
Connect your LinkedIn profile or company pages to TryPost.
## Create a LinkedIn App
1. Go to [LinkedIn Developers](https://developer.linkedin.com/)
2. Click **Create App**
3. Fill in the app details:
- App name: `TryPost` (or your preferred name)
- LinkedIn Page: Select or create a company page
- App logo: Upload an image
4. Accept the terms and click **Create app**
## Configure OAuth
1. Go to the **Auth** tab
2. Add your redirect URLs:
- `https://your-domain.com/accounts/linkedin/callback` (for profiles)
- `https://your-domain.com/accounts/linkedin-page/callback` (for pages)
3. Note your **Client ID** and **Client Secret**
## Request API Access
1. Go to the **Products** tab
2. Request access to:
- **Share on LinkedIn** - Required for posting
- **Sign In with LinkedIn using OpenID Connect** - Required for authentication
- **Advertising API** (optional) - For company page posting
> **Note:** Some products require approval and may take a few days.
## Environment Variables
Add to your `.env` file:
```env
LINKEDIN_CLIENT_ID=your_client_id
LINKEDIN_CLIENT_SECRET=your_client_secret
LINKEDIN_CLIENT_REDIRECT="${APP_URL}/accounts/linkedin/callback"
LINKEDIN_PAGE_CLIENT_REDIRECT="${APP_URL}/accounts/linkedin-page/callback"
```
## Connect Your Account
1. In TryPost, go to **Accounts**
2. Click **Connect LinkedIn** (for profile) or **Connect LinkedIn Page** (for company pages)
3. Authorize the app on LinkedIn
4. You're ready to post!
## Supported Features
- ✅ Text posts
- ✅ Image posts
- ✅ Multi-image posts
- ✅ Video posts
- ✅ Profile posting
- ✅ Company page posting

View file

@ -1,51 +0,0 @@
---
title: Mastodon
parent: Platforms
nav_order: 10
---
# Mastodon
Connect your Mastodon account to TryPost.
## How It Works
Mastodon is a decentralized network with many instances (servers). TryPost automatically registers an OAuth app with your instance when you connect.
## No Global Configuration Required
Unlike other platforms, you don't need to configure environment variables for Mastodon. Each user connects to their own instance.
## Connect Your Account
1. In TryPost, go to **Accounts**
2. Click **Connect Mastodon**
3. Enter your Mastodon instance URL (e.g., `mastodon.social`, `fosstodon.org`)
4. Click **Authorize**
5. Log in to your Mastodon instance and authorize TryPost
6. You're ready to post!
## Supported Features
- ✅ Text posts (toots)
- ✅ Image posts (up to 4 images)
- ✅ Video posts
- ✅ Content warnings (CW)
- ✅ Visibility settings (public, unlisted, private, direct)
- ✅ Hashtags
- ✅ Mentions
## Popular Instances
Some popular Mastodon instances:
- `mastodon.social` - The original instance
- `fosstodon.org` - For open source enthusiasts
- `hachyderm.io` - For tech professionals
- `mas.to` - General purpose
You can connect accounts from any Mastodon-compatible instance (including Hometown, Pleroma, etc.).
## Character Limits
Character limits vary by instance. Most use the default 500 characters, but some instances allow more.

View file

@ -1,67 +0,0 @@
---
title: Pinterest
parent: Platforms
nav_order: 8
---
# Pinterest
Connect your Pinterest account to TryPost.
## Create a Pinterest App
1. Go to [Pinterest Developers](https://developers.pinterest.com/)
2. Click **My Apps** > **Create app**
3. Fill in the app details:
- App name
- Description
- Website URL
4. Submit for approval
## Configure OAuth
1. In your app settings, add the redirect URL:
- `https://your-domain.com/accounts/pinterest/callback`
2. Note your **App ID** and **App Secret**
## Request Access
Pinterest requires app approval for production use. You can use sandbox mode for testing:
```env
PINTEREST_SANDBOX=true
```
Set to `false` once your app is approved.
## Environment Variables
Add to your `.env` file:
```env
PINTEREST_SANDBOX=true
PINTEREST_CLIENT_ID=your_app_id
PINTEREST_CLIENT_SECRET=your_app_secret
PINTEREST_CLIENT_REDIRECT="${APP_URL}/accounts/pinterest/callback"
```
## Connect Your Account
1. In TryPost, go to **Accounts**
2. Click **Connect Pinterest**
3. Log in and authorize the app
4. You're ready to post!
## Supported Features
- ✅ Pin creation
- ✅ Image pins
- ✅ Video pins
- ✅ Board selection
- ✅ Titles and descriptions
- ✅ Link URLs
## Limitations
- Idea Pins (multi-page) are not supported via API
- Story Pins are not supported

View file

@ -1,60 +0,0 @@
---
title: Threads
parent: Platforms
nav_order: 7
---
# Threads
Connect your Threads account to TryPost.
## Requirements
- Threads account linked to Instagram
- Meta Developer App
- Instagram Business or Creator account
## Create a Meta App
If you haven't already, follow the [Facebook setup guide](facebook.md) to create a Meta app.
## Configure Threads API
1. In your Meta app dashboard, add the **Threads API** product
2. Configure the required permissions
## Configure Permissions
Request these permissions in **App Review**:
- `threads_basic` - Basic account info
- `threads_content_publish` - To publish content
## Environment Variables
Add to your `.env` file:
```env
THREADS_CLIENT_ID=your_app_id
THREADS_CLIENT_SECRET=your_app_secret
THREADS_CLIENT_REDIRECT="${APP_URL}/accounts/threads/callback"
```
## Connect Your Account
1. In TryPost, go to **Accounts**
2. Click **Connect Threads**
3. Log in and authorize the app
4. You're ready to post!
## Supported Features
- ✅ Text posts
- ✅ Image posts
- ✅ Video posts
- ✅ Link posts
## Limitations
- Account must be linked to Instagram
- Some features may require app review approval

View file

@ -1,67 +0,0 @@
---
title: TikTok
parent: Platforms
nav_order: 5
---
# TikTok
Connect your TikTok account to TryPost.
## Create a TikTok Developer App
1. Go to [TikTok Developers](https://developers.tiktok.com/)
2. Log in and go to **Manage Apps**
3. Click **Create App**
4. Select **Content Posting API** as your use case
5. Fill in the app details
## Configure Your App
1. In your app settings, add the redirect URL:
- `https://your-domain.com/accounts/tiktok/callback`
2. Request the required scopes:
- `user.info.basic`
- `video.upload`
- `video.publish`
3. Submit your app for review
> **Note:** TikTok requires app approval before you can use the API in production.
## Get Your Credentials
1. Go to your app's **Manage** page
2. Note your **Client Key** and **Client Secret**
## Environment Variables
Add to your `.env` file:
```env
TIKTOK_CLIENT_ID=your_client_key
TIKTOK_CLIENT_SECRET=your_client_secret
TIKTOK_CLIENT_REDIRECT="${APP_URL}/accounts/tiktok/callback"
```
## Connect Your Account
1. In TryPost, go to **Accounts**
2. Click **Connect TikTok**
3. Log in and authorize the app
4. You're ready to post!
## Supported Features
- ✅ Video posts
- ✅ Captions with hashtags
## Requirements
- Videos must be between 1 second and 10 minutes
- Supported formats: MP4, WebM
- Maximum file size varies by account type
## Limitations
- Images cannot be posted directly (TikTok is video-only)
- Some features require a verified business account

View file

@ -1,63 +0,0 @@
---
title: X (Twitter)
parent: Platforms
nav_order: 2
---
# X (Twitter)
Connect your X (formerly Twitter) account to TryPost.
## Create an X Developer App
1. Go to the [X Developer Portal](https://developer.twitter.com/)
2. Sign up for a developer account if you haven't already
3. Create a new project and app
4. Select the appropriate access level (Free tier works for basic posting)
## Configure OAuth 2.0
1. Go to your app's **Settings**
2. Under **User authentication settings**, click **Set up**
3. Configure:
- **App permissions**: Read and Write
- **Type of App**: Web App
- **Callback URL**: `https://your-domain.com/accounts/x/callback`
- **Website URL**: Your domain
4. Save your **Client ID** and **Client Secret**
## Environment Variables
Add to your `.env` file:
```env
X_CLIENT_ID=your_client_id
X_CLIENT_SECRET=your_client_secret
X_CLIENT_REDIRECT="${APP_URL}/accounts/x/callback"
```
## Connect Your Account
1. In TryPost, go to **Accounts**
2. Click **Connect X**
3. Authorize the app on X
4. You're ready to post!
## Supported Features
- ✅ Text posts (tweets)
- ✅ Image posts (up to 4 images)
- ✅ Video posts
- ✅ Threads (multiple connected tweets)
## Rate Limits
X has rate limits depending on your access level:
| Tier | Posts per month |
|------|-----------------|
| Free | 1,500 |
| Basic | 3,000 |
| Pro | 300,000 |
Consider upgrading your X developer tier if you need higher limits.

View file

@ -1,68 +0,0 @@
---
title: YouTube
parent: Platforms
nav_order: 6
---
# YouTube
Connect your YouTube channel to TryPost.
## Create a Google Cloud Project
1. Go to [Google Cloud Console](https://console.cloud.google.com/)
2. Create a new project or select an existing one
3. Enable the **YouTube Data API v3**
## Configure OAuth Consent
1. Go to **APIs & Services** > **OAuth consent screen**
2. Select **External** user type
3. Fill in the app information:
- App name
- User support email
- Developer contact email
4. Add scopes:
- `youtube.upload`
- `youtube.readonly`
5. Add test users if in testing mode
## Create OAuth Credentials
1. Go to **APIs & Services** > **Credentials**
2. Click **Create Credentials** > **OAuth client ID**
3. Select **Web application**
4. Add your redirect URI: `https://your-domain.com/accounts/youtube/callback`
5. Note your **Client ID** and **Client Secret**
## Environment Variables
Add to your `.env` file:
```env
GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secret
GOOGLE_CLIENT_REDIRECT="${APP_URL}/accounts/youtube/callback"
```
## Connect Your Channel
1. In TryPost, go to **Accounts**
2. Click **Connect YouTube**
3. Log in with Google and authorize
4. Select your YouTube channel
5. You're ready to post!
## Supported Features
- ✅ Video uploads
- ✅ Titles and descriptions
- ✅ Tags
- ✅ Privacy settings (public, unlisted, private)
- ✅ Scheduled publishing
## Limitations
- YouTube Shorts are uploaded as regular videos
- Live streaming is not supported
- Community posts are not supported

View file

@ -1,193 +0,0 @@
---
title: Docker
parent: Self-Hosting
nav_order: 3
---
# Docker Deployment
TryPost includes [Laravel Sail](https://laravel.com/docs/sail), a lightweight Docker development environment.
## Requirements
- Docker Desktop (Mac, Windows) or Docker Engine (Linux)
- Docker Compose
## Quick Start
### 1. Clone the repository
```bash
git clone https://github.com/trypost-it/trypost.git
cd trypost
```
### 2. Install Composer dependencies
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

@ -1,9 +0,0 @@
---
title: Self-Hosting
has_children: true
nav_order: 5
---
# Self-Hosting
Deploy TryPost on your own infrastructure.

View file

@ -1,182 +0,0 @@
---
title: Production Setup
parent: Self-Hosting
nav_order: 2
---
# Production Setup
This guide covers deploying TryPost to a production environment.
## Environment Configuration
Set these values in your `.env` for production:
```env
APP_ENV=production
APP_DEBUG=false
APP_URL=https://your-domain.com
SELF_HOSTED=true
```
## Optimizations
Run these commands after deployment:
```bash
# Cache configuration
php artisan config:cache
# Cache routes
php artisan route:cache
# Cache views
php artisan view:cache
# Optimize autoloader
composer install --optimize-autoloader --no-dev
```
## Queue Worker
TryPost uses queues for background processing. Use Supervisor to keep the queue worker running.
### Install Supervisor
```bash
# Ubuntu/Debian
sudo apt install supervisor
# CentOS/RHEL
sudo yum install supervisor
```
### Configure Supervisor
Create `/etc/supervisor/conf.d/trypost-worker.conf`:
```ini
[program:trypost-horizon]
process_name=%(program_name)s
command=php /var/www/trypost/artisan horizon
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
redirect_stderr=true
stdout_logfile=/var/www/trypost/storage/logs/horizon.log
stopwaitsecs=3600
```
Then start it:
```bash
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start trypost-horizon
```
## Nginx Configuration
Example Nginx configuration:
{% raw %}
```nginx
server {
listen 80;
listen [::]:80;
server_name your-domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name your-domain.com;
root /var/www/trypost/public;
index index.php;
ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
client_max_body_size 100M;
}
```
{% endraw %}
## SSL Certificate
Use Let's Encrypt for free SSL:
```bash
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com
```
## Scheduled Tasks
Add the Laravel scheduler to cron:
```bash
crontab -e
```
Add this line:
```
* * * * * cd /var/www/trypost && php artisan schedule:run >> /dev/null 2>&1
```
## File Permissions
Set correct permissions:
```bash
sudo chown -R www-data:www-data /var/www/trypost
sudo chmod -R 755 /var/www/trypost
sudo chmod -R 775 /var/www/trypost/storage
sudo chmod -R 775 /var/www/trypost/bootstrap/cache
```
## Monitoring
Consider setting up monitoring for:
- Server health (CPU, memory, disk)
- Application errors (Laravel logs)
- Queue status (Horizon dashboard at `/horizon`)
## Backups
Regularly backup:
- Database
- `.env` file
- Uploaded media (if using local storage)

View file

@ -1,84 +0,0 @@
---
title: Requirements
parent: Self-Hosting
nav_order: 1
---
# Server Requirements
This guide covers the requirements for self-hosting TryPost.
## Minimum Requirements
| Component | Minimum | Recommended |
|-----------|---------|-------------|
| CPU | 1 core | 2+ cores |
| RAM | 1 GB | 2+ GB |
| Storage | 10 GB | 20+ GB (depends on media storage) |
## Software Requirements
### Required
- **PHP 8.2+** with extensions:
- BCMath, Ctype, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML
- GD or Imagick (for image processing)
- Redis extension
- **Composer** 2.x
- **Node.js** 18+ and npm
- **PostgreSQL** 14+ or **MySQL** 8+
- **Redis** 6+
### Optional
- **Nginx** or **Apache** (for production)
- **Supervisor** (for queue workers)
- **SSL certificate** (Let's Encrypt recommended)
## PHP Configuration
Recommended `php.ini` settings:
```ini
upload_max_filesize = 100M
post_max_size = 100M
memory_limit = 256M
max_execution_time = 300
```
## Supported Operating Systems
TryPost can run on any OS that supports the required software:
- Ubuntu 22.04+ (recommended)
- Debian 11+
- CentOS/RHEL 8+
- macOS (for development)
- Windows with WSL2 (for development)
## Cloud Providers
TryPost works well on:
- DigitalOcean Droplets
- AWS EC2
- Google Cloud Compute
- Hetzner Cloud
- Linode
- Vultr
## Storage Considerations
Media files (images, videos) can be stored:
- **Locally** - On the server's disk
- **S3** - Amazon S3
- **R2** - Cloudflare R2
- **Any S3-compatible** - MinIO, DigitalOcean Spaces, etc.
For production with heavy media usage, cloud storage is recommended.
## Next Steps
- [Production Setup](production.md)
- [Docker Deployment](docker.md)