Static Sites
DanubeData Static Sites lets you deploy static websites and single-page applications with automatic TLS, custom domains, and global caching — powered by a fast nginx edge layer with zero server management.
Key features
- Three deployment methods — Upload a ZIP file, connect a Git repository, or push via CLI
- Automatic builds — Push to GitHub, GitLab, or Bitbucket and your site deploys automatically
- Custom domains — Bring your own domain with DNS verification and automatic TLS via Let's Encrypt
- Instant rollbacks — Revert to any previous deployment with one click
- Password protection — Restrict access to your site with HTTP Basic Auth
- Real-time build logs — Watch your build progress live in the dashboard
- Global caching — Optimized nginx configuration with aggressive caching for CSS, JS, and images
- Free tier — Deploy your first site at no cost
- EU data residency — All data stored in Falkenstein, Germany (GDPR-compliant)
Deployment methods
ZIP upload
Upload a ZIP file containing your pre-built site files directly through the dashboard. Best for simple sites, quick prototyping, or when you have a local build pipeline.
- Maximum file size: 200 MB
- Supported format:
.zip
Git repository
Connect a GitHub, GitLab, or Bitbucket repository for automatic deployments. Each push to your configured branch triggers a new build and deployment.
- Supported providers — GitHub, GitLab, Bitbucket
- Authentication — Public repos require no credentials. Private repos support SSH keys or access tokens.
- Auto-deploy — Builds trigger automatically on push via webhooks
- Branch selection — Deploy from any branch (defaults to
main)
CLI push
Push your site files from the command line using the DanubeData API. Ideal for CI/CD pipelines and automated workflows.
# Create a tarball of your site files
tar -czf site.tar.gz -C ./dist .
# Deploy via API
curl -X POST \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-F "file=@site.tar.gz" \
https://api.danubedata.ro/api/v1/static-sites/{site-id}/deploy
How it works
Build and deployment pipeline
Upload / Git Push / CLI Push
|
v
Build Queued
|
v
Building Container Image (Kaniko)
|
v
Pushing to Registry
|
v
Deploying via GitOps (ArgoCD)
|
v
Site Active
- Source upload — Your files are uploaded to build storage
- Container build — A Kaniko job creates an optimized nginx container image with your files
- Registry push — The built image is pushed to the DanubeData container registry
- GitOps deployment — ArgoCD deploys the container to your tenant namespace
- Live — Your site is accessible at its URL with automatic TLS
Build statuses
| Status | Description |
|---|---|
| Pending | Build queued, waiting for resources |
| Processing | Preparing build context |
| Building image | Kaniko is building the container image |
| Pushing | Uploading the built image to the registry |
| Succeeded | Build completed successfully, deployment starting |
| Failed | Build failed — check build logs for details |
| Cancelled | Build was cancelled before completion |
Site statuses
| Status | Description |
|---|---|
| Pending | Site created, awaiting first deployment |
| Building | A build is in progress |
| Deploying | Deployment to infrastructure in progress |
| Active | Site is live and accessible |
| Stopped | Site has been stopped |
| Error | Build or deployment failed — check the error details |
Status changes are pushed to your dashboard in real time via WebSocket.
Site access
Each site is accessible at:
https://{slug}.pages.danubedata.ro
The slug is auto-generated from your site name with a short suffix to ensure uniqueness.
Plans and pricing
| Plan | Storage | Bandwidth | Sites | Custom domains | Price/month |
|---|---|---|---|---|---|
| Free | 100 MB | 10 GB | 1 | 0 | EUR 0.00 |
| Starter | 500 MB | 100 GB | 10 | 5 per site | EUR 2.99 |
| Pro | 2 GB | 500 GB | 50 | 20 per site | EUR 9.99 |
- Free — Perfect for personal projects, portfolios, and testing
- Starter — For small teams with multiple sites and custom domain needs
- Pro — For agencies and businesses with high-traffic sites
Billing is hourly based on actual usage. Monthly invoices are generated on the 1st of each month.
Custom domains
Add your own domain to any site on a paid plan (Starter or Pro).
Adding a custom domain
- Navigate to your site detail page
- Click the Domains tab
- Click Add Domain
- Enter your domain (e.g.,
www.example.com)
Domain verification
After adding a domain, verify ownership by adding a DNS TXT record:
- Record name —
_danubedata-verify.your-domain.com - Record value — The verification token shown in the dashboard
Add this TXT record at your DNS provider, then click Verify in the dashboard. DNS propagation may take a few minutes.
Connecting your domain
After verification, create a CNAME record pointing your domain to your site:
your-domain.com CNAME {slug}.pages.danubedata.ro
Once the CNAME is in place, a TLS certificate is provisioned automatically via Let's Encrypt.
Domain statuses
Verification status:
| Status | Description |
|---|---|
| Pending | Awaiting DNS TXT record verification |
| Verifying | DNS check in progress |
| Verified | Domain ownership confirmed |
| Failed | Verification failed — check your DNS records and retry |
TLS status:
| Status | Description |
|---|---|
| Pending | Awaiting TLS certificate provisioning |
| Provisioning | Certificate being generated via Let's Encrypt |
| Active | HTTPS is active with a valid certificate |
| Failed | Certificate provisioning failed — ensure CNAME is correct |
Setting a primary domain
You can designate any verified domain as the primary domain. The primary domain is used as the canonical URL for your site.
Password protection
Restrict access to your entire site using HTTP Basic Auth. This is useful for staging environments, client previews, or private content.
- Navigate to the site detail page
- Click Edit
- Enable Password Protection
- Enter a username and password (minimum 8 characters)
- Click Save
Visitors will be prompted for credentials before accessing any page on the site.
Git webhooks
When using Git repository deployment, DanubeData sets up webhook integration for automatic builds.
Supported providers
| Provider | Signature header | Verification method |
|---|---|---|
| GitHub | X-Hub-Signature-256 | HMAC-SHA256 |
| GitLab | X-Gitlab-Token | Token comparison |
| Bitbucket | X-Hub-Signature | HMAC-SHA256 |
Setting up webhooks
- Navigate to the site detail page
- Copy the Webhook URL and Webhook Secret shown in the Git configuration section
- In your Git provider settings, add a new webhook:
- URL — The webhook URL from the dashboard
- Secret — The webhook secret from the dashboard
- Events — Push events only
Auto-deploy
When auto-deploy is enabled, every push to the configured branch triggers a new build and deployment automatically. You can disable auto-deploy from the site settings if you prefer manual deployments.
Deployment history and rollbacks
Every successful deployment is recorded with its revision number, commit details, and timestamp.
Viewing deployments
Navigate to the site detail page and click the Deployments tab to see your full deployment history.
Rolling back
To revert to a previous deployment:
- Open the Deployments tab
- Find the deployment you want to restore
- Click Activate
The previous deployment is restored immediately without rebuilding. This is useful for quickly reverting a broken deployment.
Caching
Static Sites use an optimized nginx configuration with aggressive caching headers:
| Content type | Cache policy |
|---|---|
| CSS and JavaScript | public, max-age=31536000, immutable (1 year) |
| Images | public, max-age=604800 (7 days) |
| HTML | no-cache (always revalidated) |
HTML files are always served fresh to ensure visitors see the latest content, while static assets (CSS, JS, images) are cached aggressively for performance.
Technical specifications
| Specification | Value |
|---|---|
| Web server | nginx 1.27 (Alpine) |
| TLS | Let's Encrypt with automatic renewal |
| Default domain | {slug}.pages.danubedata.ro |
| Maximum upload size | 200 MB (ZIP) |
| Build timeout | 10 minutes |
| Build system | Kaniko (containerized builds) |
| Deployment method | GitOps via ArgoCD |
| Data location | Germany (EU) |
FAQ
What types of sites can I deploy?
Any static site or single-page application (SPA). This includes sites built with React, Vue, Next.js (static export), Nuxt (static), Hugo, Jekyll, Astro, Eleventy, or plain HTML/CSS/JS.
Can I use a custom build command?
Not currently. Static Sites expects pre-built files. Run your build locally or in CI/CD, then upload the output directory as a ZIP or push via CLI.
How do I deploy a React or Vue app?
Build your app locally (e.g., npm run build), then upload the output directory (typically dist/ or build/) as a ZIP file. For Git deployments, set the Publish directory to the folder containing your built files.
Can I use the Free plan for production?
Yes. The Free plan includes 100 MB storage and 10 GB bandwidth, which is sufficient for personal sites and portfolios. You are limited to one site with no custom domains.
How long does a deployment take?
Most deployments complete within 1-2 minutes. Build time depends on the size of your files. The build timeout is 10 minutes.
Can I password-protect only certain pages?
No. Password protection applies to the entire site. For per-page access control, implement authentication in your application code.
What happens if my build fails?
Your current live deployment remains active. Failed builds do not affect the running site. Check the build logs for error details and try again.
Can I use a root domain (apex domain)?
Custom domains work with both subdomains (www.example.com) and root domains (example.com). For root domains, use an A or ALIAS record instead of CNAME, depending on your DNS provider's capabilities.
Is there a CLI tool?
You can deploy using the DanubeData API with any HTTP client (curl, httpie, etc.) or integrate it into your CI/CD pipeline. See the CLI deployment section for details.
How do rollbacks work?
Each deployment creates a container image stored in the registry. Rolling back activates a previous image without rebuilding, making rollbacks nearly instant.
Next steps
- Static Sites quick start — Deploy your first static site
- Custom domains — DNS verification and TLS setup
- Git deployments — Webhooks and auto-deploy
Questions? Contact support at support@danubedata.ro