• Docs
  • Changelog
Sign in
Get started
    • Home
    • Your first deploy
    • Free instances
    • Platform features by plan
    • Use with coding agents
    • FAQ
    • Templates
      • Migrate from…
        • Heroku
        • Railway
    • Compute plans
    • SandboxesBeta
      • Service types
        • Which to use?
        • Static sites
        • Web services
        • Private services
        • Background workers
        • Cron jobs
        • Workflows
        • Multi-service architectures
      • Data storage
        • Render Postgres
        • Render Key Value (Redis®-compatible)
        • Persistent disks
    • How deploys work
    • Supported languages
    • Git providers (GitHub, etc.)
    • Build pipeline
    • Deploy hooks
    • Monorepo support
    • Troubleshooting deploys
      • Previewing changes
        • Single-service previews
        • Preview environments (multi-service)
      • Docker deploys
        • Overview
        • Deploy a registered image
        • Using secrets
      • Runtime
        • Native runtimes
        • Environment variables & secrets
        • Default environment variables
    • Intro to sandboxes
    • Limits
      • How to…
        • Create & configure sandboxes
        • Execute commands
        • Manage files
        • Manage snapshots
      • Use with…
        • Claude Managed Agents
        • Cursor Cloud Agents
        • OpenAI Agents API
      • SDK/CLI reference
        • TypeScript SDK
        • Python SDK
        • CLI commands
    • Intro to workflows
    • Tutorial
    • Limits & pricing
      • How to…
        • Define tasks
        • Define flowsNew
        • Trigger runs
        • Develop locally
      • SDK reference
        • TypeScript SDK
        • Python SDK
      • Example workflows
        • TypeScript examples
        • Python examples
    • Overview
    • Create & connect
    • Database credentials
    • Extensions
    • Version upgrades
    • Logical replication
    • Legacy instance types
      • Database recovery
        • Recovery & backups
        • High availability
      • Database performance
        • Read replicas
        • Connection pooling
        • Admin apps
        • Repacking tables
        • Troubleshooting performance
    • Regions
    • Inbound IP rules
    • Edge caching
    • WebSockets
    • TLS certificates
      • Custom domains
        • Overview
        • Cloudflare
        • Namecheap
        • Other DNS providers
      • Internal traffic
        • Private network
        • Private links
      • Outbound traffic
        • Default IP ranges
        • Dedicated IP addresses
        • Outbound bandwidth
        • Handling network changes
      • Static site config
        • Custom response headers
        • Redirects & rewrites
    • The Render Dashboard
    • SSH / Shell access
    • Projects & environments
      • Service actions
        • Scaling
        • Rollbacks
        • Maintenance mode
        • One-off jobs
      • Infrastructure as code
        • Blueprints overview
        • render.yaml reference
        • Terraform provider
    • In-dashboard metrics
    • Health checks
    • Uptime best practices
      • Logging
        • In-dashboard logs
        • Log streams (syslog/HTTPS)
      • OpenTelemetry (OTel) metrics
        • Provider setup
        • Metrics reference
      • Notifications
        • Webhooks
        • Email / Slack
    • MCP Server
      • Render CLI
        • Overview
        • Command reference
      • REST API
        • Overview
        • API reference
      • Third-party connections
        • OIDC support
        • Datadog
    • Workspaces, members, & roles
    • Login settings
    • Audit logs
      • Organizations
        • Overview
        • SAML SSO
    • DDoS protection
    • Platform maintenance
      • Compliance
        • Overview
        • HIPAA (US health data)
        • HIPAA best practices
        • Shared responsibility model
        • Pentest policy
    • Heroku vs Render
    • Vercel vs Render

Deploy Shynet

Shynet is an open-source cookie-free analytics tool that you can easily deploy on Render. Created with Django and a17t, it's intended for personal projects and small to medium size websites.

Shynet Screenshot

You can host your own Shynet instance on Render in just a few minutes. Once it's live you will be able to log in and get your JavaScript snippet. You can add it to any website to get instant access to detailed, real-time analytics.

One-Click Deploy

Click Deploy to Render below to set up Shynet on Render.

Deploy to Render

After deployment, use Render Shell to set up your account with those 3 commands:

  1. Set your email with ./manage.py registeradmin your-email@example.com. You will be prompted with a temporary password. Save it.
  2. Set your whitelabel with ./manage.py whitelabel "Header for your Shynet site". It will be shown at the top of your Shynet site.
  3. Update the CSRF_TRUSTED_ORIGINS environment variable to your deployed Render service domain.

You can now open your Shynet instance. You'll find your unique URL, that looks something like https://your-shynet-domain.onrender.com, at the top of your service dashboard. Log in with your email, and previously saved password and start using Shynet!

Manual Deploy

Follow these steps to manually deploy Shynet on Render.

Create a Database

Create a new managed PostgreSQL instance on Render. The database should be up in a few minutes; wait for it to go live before moving to the next step.

You'll need details from your database before you can deploy Shynet web service.

Deploy Shynet

  1. Fork render-examples/shynet on GitHub or click Use this template.

  2. Create a new Web Service on Render and give Render's GitHub app permission to access your new repository. Make sure the Language field is set to Docker and pick a name for your service.

  3. Add the following environment variables to your web service:

    KeyValue
    DB_NAMEDatabase variable from your newly created database
    DB_HOSTHostname variable from your newly created database
    DB_PORTPort variable from your newly created database
    DB_USERUsername variable from your newly created database
    DB_PASSWORDPassword variable from your newly created database
    CSRF_TRUSTED_ORIGINSRender service domain including scheme (https://)

    Save your web service to deploy Shynet on Render and wait for it to go live before continuing with the next step.

  4. After deployment, use Render Shell to set up your account with the following commands:

    • Set your email with ./manage.py registeradmin your-email@example.com. You will be prompted with a temporary password. Save it.
    • Set your whitelabel with ./manage.py whitelabel "Header for your Shynet site". It will be shown at the top of your Shynet site.

You can now open your Shynet instance. You'll find your unique URL, that looks something like https://your-shynet-domain.onrender.com, at the top of your service dashboard. Log in with your email, and previously saved password and start using Shynet!

Shynet Welcome Screen

Deploy Shynet
  • One-Click Deploy
  • Manual Deploy
    • Create a Database
    • Deploy Shynet
All Systems Operational
© Render Inc. All rights reserved.