Documentation
Deploy: Your Own Server
Taking an exported system live on a plain VPS
Deploying to your own server
[PLACEHOLDER — route to confirm] This guide targets a plain VPS ([own VPS] — e.g. DigitalOcean, Hetzner, AWS EC2) managed by hand or with a provisioning tool. Once the recommended route is confirmed, name the tool and fold its specifics in.
This guide is for the developer or Stellify partner taking an exported Stellify system live on their own infrastructure. The export is standard Laravel — it runs anywhere PHP runs, with no Stellify runtime.
Prerequisites
- A server with PHP 8.2+ (with the usual Laravel extensions: mbstring, openssl, pdo, tokenizer, xml, ctype, curl, fileinfo), Composer, Node.js + npm
- A web server (nginx is typical) with the document root pointed at the app's
public/directory - MySQL or PostgreSQL
- HTTPS via your certificate tooling of choice
- The exported code, via GitHub sync (recommended) or ZIP download
Environment variables
Copy .env.example to .env and fill it in:
APP_NAME,APP_ENV=production,APP_DEBUG=false,APP_URLAPP_KEY— generate withphp artisan key:generateDB_*— your database credentialsSESSION_DRIVER,CACHE_STORE,QUEUE_CONNECTION— exports default these todatabase, which works without Redis; switch to Redis later if load demands itMAIL_MAILER+MAIL_*for your email provider, if the system sends email- Any module-specific keys listed in
.env.example(Stripe, S3, and so on)
Database
Create the database and user, set the DB_* variables, then:
php artisan migrate --force
Queue worker and scheduler
If the system queues work, run a supervised worker (systemd or Supervisor):
[program:app-worker]
command=php /var/www/app/artisan queue:work --tries=3 --max-time=3600
autostart=true
autorestart=true
If the system uses scheduled tasks, add the scheduler cron:
* * * * * cd /var/www/app && php artisan schedule:run >> /dev/null 2>&1
Set the MAIL_* variables and send a test before go-live. Verify your sending domain with the provider so mail lands in inboxes.
First deployment
git clone <your-repo> /var/www/app && cd /var/www/app
composer install --no-dev --optimize-autoloader
cp .env.example .env # then fill it in
php artisan key:generate
npm ci && npm run build
php artisan migrate --force
php artisan config:cache && php artisan route:cache && php artisan view:cache
chown -R www-data:www-data storage bootstrap/cache
Point nginx at public/, confirm HTTPS, and you're live.
Applying a re-export
As Stellify improves the modules a system is built from, the customer can buy a re-export: a fresh build from the latest module versions against their accepted requirements, committed to the same repo via GitHub sync. Changes you made outside the Studio are not carried across — re-apply them on top, reviewing the merge like any upstream update. Then deploy:
git pull
composer install --no-dev --optimize-autoloader
npm ci && npm run build
php artisan migrate --force
php artisan config:cache && php artisan route:cache && php artisan view:cache
- Previous
- Deploy: Managed Laravel Host