Sandbox is an open-source platform for creating self-destructing WordPress sites. It allows you to instantly deploy temporary WordPress environments that automatically delete after a configurable time period. Perfect for testing, demos, client presentations, and short-term projects.
- Instant Deployment: Create throwaway WordPress sites in 30 seconds
- Self-Destructing: Sites automatically delete after a configurable time period
- No Setup Required: Everything works out of the box with zero configuration
- Fully Secured: SSL certificates installed automatically on all sites
- Shareable: Public site information pages with all credentials
- Admin Dashboard: Manage all throwaway sites from a central admin panel
- Email Notifications: Optional reminders before sites are deleted
- Highly Configurable: Customize domain, expiration times, and more
The quickest way to see Sandbox in action is to visit https://sandbox.serveravatar.com and create a throwaway WordPress site with one click.
- PHP 8.1 or higher
- Composer
- MySQL 5.7+ or MariaDB 10.3+
- Node.js and NPM
- A ServerAvatar account with API access (for server integration)
- Cloudflare account with API access (optional, for DNS management)
git clone https://github.com/adarshsojitra/sandbox.git
cd sandboxcomposer installnpm install
npm run buildcp .env.example .env
php artisan key:generateEdit the .env file to configure your database connection:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=sandbox
DB_USERNAME=root
DB_PASSWORD=your_password
php artisan migrate
php artisan db:seedNavigate to the /register page in your browser and create the first user. After the first user is created, registrations can be disabled from the System Settings.
Log into the admin dashboard at /admin and navigate to the Settings page to configure:
- Default Deletion Time: How long temporary sites will exist before auto-deletion
- Domain Name: The domain to use for temporary sites
- ServerAvatar API Integration: Connect to your ServerAvatar account
- Cloudflare Integration: Connect to your Cloudflare account (optional)
- SMTP Settings: Configure email notifications
The application uses Laravel's scheduler to run recurring tasks like site expiration checks. Add the scheduler to your crontab:
crontab -eThen add this line to run the scheduler every minute:
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
This will ensure that expired sites are automatically cleaned up based on the configuration.
php artisan serveVisit http://localhost:8000 in your browser to access the application.
Sandbox integrates with ServerAvatar to create and manage WordPress sites. To configure this integration:
- Create a ServerAvatar account if you don't have one
- Generate an API key from your ServerAvatar dashboard
- In the Sandbox admin dashboard, go to Settings
- Enter your ServerAvatar API URL, API key, and Organization ID
- Test the connection
For automatic DNS management and SSL certificates:
- Create a Cloudflare account if you don't have one
- Add your domain to Cloudflare and set up your DNS records
- Generate an API key from your Cloudflare dashboard
- In the Sandbox admin dashboard, go to Settings
- Enter your Cloudflare Zone ID, API key, and domain
- Upload your SSL certificate and private key
- Test the connection
To enable email notifications for site creation and deletion reminders:
- In the Sandbox admin dashboard, go to Settings
- Configure your SMTP settings
- Set up the sender name and email address
- Test the email configuration
- Visit the homepage as an anonymous user to create a public temporary site
- Log in to the admin dashboard to create and manage sites
- Configure reminder emails for auto-deletion notifications
- View all created sites with status and expiration information
- Manage server connections for site deployment
- Configure system settings
- Toggle site creation from the homepage
- Go to the admin dashboard β Settings
- Select a different value for "Default Site Deletion Time"
- Save your changes
- Go to the admin dashboard β Settings
- Update the domain field with your custom domain
- Ensure your Cloudflare configuration matches this domain
- Save your changes
- Go to the admin dashboard β Settings
- Check or uncheck "Allow site creation from homepage"
- Save your changes
If you're having trouble connecting to the ServerAvatar API:
- Verify your API key is correct
- Ensure your Organization ID is correct
- Check that the API URL is formatted properly
- Check your server's outbound connection
If SSL certificates aren't being installed correctly:
- Make sure your Cloudflare API connection is working
- Verify your SSL certificate and private key are properly formatted
- Check that your domain is properly configured in Cloudflare
If email notifications aren't being sent:
- Verify your SMTP settings
- Check that your sender email address is valid
- Test the email configuration from the Settings page
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add some amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Laravel - The web framework used
- ServerAvatar - Server and application management API
- Cloudflare - DNS and SSL management
- Bootstrap - Frontend framework
- Tailwind CSS - Admin UI styling
- Alpine.js - JavaScrhttps://serveravatar.com/features#features_quick_server_setupipt framework
Made with β€οΈ by ServerAvatar