Managed services
DollarDeploy installs and configures services directly on your server with one click. No external providers, no separate billing, no network latency—everything runs on your infrastructure.
We use native packages (not Docker) for better performance, security, and easy access via SSH.
Databases
PostgreSQL
The world's most advanced open-source relational database. Perfect for most web applications, with full SQL support, JSON fields, and excellent performance.
- Version: Latest stable from the server distribution.
- Access: Local socket + TCP on localhost:5432
- Management: Full
psqlaccess via SSH, run it as:psql -U postgres
Exposed Environment variables (available for your apps):
# For usage in native apps
POSTGRES_URL=postgresql://postgres:password@localhost:5432/postgres
# For usage in docker apps
POSTGRES_DOCKER_URL=postgresql://postgres:password@host.docker.internal:5432/postgresCustomize with POSTGRES_PASSWORD, POSTGRES_DATABASES in host settings. Read more here.
Redis
In-memory data store for caching, sessions, queues, and real-time features. Extremely fast with sub-millisecond latency.
- Version: Latest stable from the server distribution.
- Access: localhost:6379
- Use cases: Session storage, caching, pub/sub, job queues (BullMQ, Sidekiq)
Exposed Environment variables (available for your apps):
# For usage in native apps
REDIS_URL=redis://localhost:6379
# For usage in Docker apps
REDIS_DOCKER_URL=redis://host.docker.internal:6379MongoDB
Document-oriented NoSQL database. Great for flexible schemas, rapid prototyping, and apps with evolving data structures.
- Version: Latest stable from official MongoDB repositories
- Access: localhost:27017
- Use cases: Content management, catalogs, real-time analytics
Environment variables:
# For locally running, native apps
MONGODB_URL=mongodb://localhost:27017
# For apps running in Docker
MONGODB_DOCKER_URL=mongodb://localhost:27017
MariaDB
MySQL-compatible database with improved performance and additional features. Drop-in replacement for MySQL.
- Version: Latest stable from server distribution
- Access: localhost:3306
- Use cases: WordPress, Laravel, legacy MySQL apps
Environment variables:
MARIADB_URL=mysql://root:password@localhost:3306/mysqlInfrastructure
Docker
Container runtime for running Docker Compose apps or custom containers alongside native apps.
- Version: Latest stable from official Docker repositories
- Includes: Docker Engine + Docker Compose
- Use cases: Complex multi-container setups, apps that require Docker
Note: Most apps don't need Docker—native deployment is faster and simpler. Use Docker only when your app specifically requires it.
Firewall (UFW + fail2ban)
Security hardening for your server. Automatically configured to allow only necessary traffic.
- UFW rules: SSH (22), HTTP (80), HTTPS (443) allowed; everything else blocked.
- fail2ban: Monitors SSH and bans IPs after failed login attempts.
- Auto-updates: Rules updated when you add new apps or services.
DDAgent
Optional monitoring agent that sends metrics, logs, and health data to DollarDeploy for better visibility.
- Collects: CPU, memory, disk, network metrics
- Sends: Application logs and health status
- Dashboard: View in DollarDeploy web interface
LUKS
DollarDeploy includes a built-in LUKS service that sets up a fully encrypted volume on your server — no SSH, no manual cryptsetup commands needed. If your app handles sensitive data — user files, database backups, secrets — storing it unencrypted on a cloud volume is a risk. If the underlying disk is ever extracted or the provider is compelled to hand over a snapshot, plaintext data is exposed. LUKS (Linux Unified Key Setup) encrypts the block device itself, so data is unreadable without the key, regardless of how the disk is accessed.
Set these host environment variables before preparing the host:
ENCRYPTED_DEVICE- (required) Block device path, e.g. /dev/sdbENCRYPTED_NAME- Default:encrypted-data. Device name.ENCRYPTED_MOUNT- Default:/mnt/encrypted. Mount point.ENCRYPTED_KEYFILE- Default:/root/.luks-keyfile. Keyfile location.
Change services to use encrypted storage
Before installing services to the server, add following environment variables to the server so it will automatically use encrypted storage:
POSTGRES_DATA_PATH=/mnt/encrypted/postgresREDIS_DATA_PATH=/mnt/encrypted/redis
Press Prepare to get LUKS configured and enabled to automatically decrypt after server restart.
How to enable services
- Go to Servers in your Dashboard
- Click on your server
- Open the Services tab
- Add the service you need
- Press Prepare on the server
Services are installed and configured automatically. Environment variables are injected into all apps on that server.
Why run services on your server?
- Zero latency — Database on localhost, not across the network
- No extra billing — No managed database fees ($15-50+/month saved)
- Full access — SSH in and run any command, inspect data, tune settings
- Your data — Everything stays on your infrastructure
- One-click backups — Back up everything to S3 with a single click
See also: All predefined environment variables