Pxxl Framework Deployment Recipes and Configuration Guide
Copy-paste build settings for React, Next.js, Nuxt, Express, FastAPI, Django, Laravel, Go, Ruby on Rails, .NET, Rust, and background workers.
Pxxl auto-detects most repositories and pre-fills your install, build, and start commands from the lock files and project structure it finds. These recipes let you review, copy, or override those settings for your specific framework. Find your language or stack below, then paste the values directly into the deploy form or your pxxl.toml file.
JavaScript / TypeScript
Python
PHP
Go
Java
Ruby
.NET
Rust
Workers
Pxxl supports all major Node.js package managers and frameworks. Use the recipe that matches your frontend or backend stack.
Always bind your server to 0.0.0.0, not localhost or 127.0.0.1. Pxxl’s proxy layer cannot reach a process that only listens on the loopback interface.
Pxxl supports Python web APIs and server-rendered applications using pip or Poetry. All Python servers must bind to 0.0.0.0 and respect the PORT environment variable.
# Full production build sequencecomposer install --no-dev --optimize-autoloaderphp artisan config:cachephp artisan route:cachephp artisan view:cachephp artisan serve --host 0.0.0.0 --port ${PORT:-8000}
If your Laravel app includes frontend assets built with Vite or Mix, add the Node package-manager install and build commands before the Artisan commands.
Go compiles your source into a single statically-linked binary. This makes Pxxl deployments fast and containers lean.Use this recipe for Gin, Fiber, Echo, Chi, and standard-library HTTP services.
Setting
Value
Install Command
go mod download
Build Command
go build -o bin/server ./cmd/api
Start Command
./bin/server
Your server must read PORT at runtime and bind to 0.0.0.0:
main.go
package mainimport ( "log" "net/http" "os")func main() { port := os.Getenv("PORT") if port == "" { port = "3000" } router.Run("0.0.0.0:" + port)}
Hard-coding a port number will cause the Pxxl health check to fail. Always read PORT from the environment.
Pxxl supports Spring Boot services built with Maven or Gradle.
Setting
Value
Install Command
./mvnw dependency:go-offline or ./gradlew dependencies
Build Command
./mvnw package -DskipTests or ./gradlew build -x test
Start Command
java -jar target/*.jar (Maven) or the Gradle-generated jar path
Set SERVER_PORT=${PORT} as an environment variable, or configure your application.properties to read ${PORT:8080}, so Spring Boot binds on the port Pxxl assigns.
Pxxl supports Rails and Rack applications managed with Bundler.
Setting
Value
Install Command
bundle install
Build Command
bundle exec rails assets:precompile (when the asset pipeline is enabled)
Start Command
bundle exec rails server -b 0.0.0.0 -p ${PORT:-3000}
# Full production sequencebundle installbundle exec rails assets:precompilebundle exec rails server -b 0.0.0.0 -p ${PORT:-3000}
Set RAILS_ENV=production and SECRET_KEY_BASE as environment variables in the deploy form before your first deployment.
Pxxl supports ASP.NET Core web APIs and Blazor applications.
Pxxl automatically sets the ASPNETCORE_URLS and DOTNET_URLS environment variables to the assigned port, so you do not need to configure the listening address manually.
Pxxl supports Axum, Actix-web, Rocket, and Warp services compiled with Cargo.
Your server must read PORT from the environment and bind to 0.0.0.0:
main.rs
use std::env;#[tokio::main]async fn main() { let port = env::var("PORT").unwrap_or_else(|_| "3000".to_string()); let addr = format!("0.0.0.0:{}", port); // pass addr to your router's bind / serve call}
Workers handle background jobs, queue consumers, and scheduled tasks. They do not receive public HTTP traffic and do not need a listening port.
Setting
Value
Service Type
Worker
Install Command
Package or language install command
Build Command
Optional compiler or transpile step
Start Command
The worker entrypoint — see examples below
npm run worker
Workers must keep their process running. If the process exits, Pxxl will attempt to restart it. Make sure your worker does not exit immediately after starting — it should block on a queue or event loop.
Do not expose a port in your worker configuration. Workers that try to bind to a port may interfere with Pxxl’s health-check routing. If you need both a web process and a worker from the same repository, create two separate Pxxl projects — one for the web service and one for the worker.