Prerequisites
Before you begin, make sure you have:- An Upsun account
- The Upsun CLI installed and authenticated
- Git installed on your local machine
Why self-host your transcription service?
Commercial transcription services charge per minute of audio. If you’re transcribing large amounts of content, those costs add up fast. Self-hosting gives you predictable monthly costs regardless of how much you transcribe. Privacy is another consideration. When you use external services, your audio files leave your infrastructure. With a self-hosted solution, your recordings never leave your control. This matters for sensitive content like internal meetings, legal recordings, or medical dictation. You also gain full control over your data. Keep transcriptions as long as you want, organize them however you prefer, and integrate with your own systems without API limitations.Understanding the resource requirements
Scriberr runs AI models locally for transcription. These models need significant memory to load and run. The minimum requirement is 10GB RAM, and you’ll want 40GB of disk space for the models, temporary files during processing, and your transcription library. This configuration uses CPU inference rather than GPU. GPU would be faster, but CPU costs less and works well for Scriberr’s workflow. You upload files, then check back later for results. The processing time is longer, but you’re not waiting in real-time. TheHIGH_MEMORY container profile in Upsun allocates the necessary resources for AI workloads. Expect higher hosting costs compared to a typical web application due to these requirements.
Current limitations
Scriberr is a single-user application with basic access control. You set up an admin username and password on first use. All subsequent access requires those credentials. There’s no support for multiple user accounts. If multi-user support matters to you, consider contributing to the Scriberr project.Project setup
Start by cloning the example repository:.upsun/config.yaml. Scriberr itself gets downloaded during the build process.
Understanding the Upsun configuration
Here’s the complete configuration file:Container profile
HIGH_MEMORY profile provides the memory allocation needed for AI inference. Standard profiles don’t provide enough RAM for the speech recognition models.
Build hook
Environment variables
XDG_* variables direct application data to a persistent mount so your configuration and transcriptions survive deployments.
Mounts
data: Stores your transcriptions, configuration, and downloaded AI modelsnltk_data: Stores Natural Language Toolkit data used for text processing
Web configuration
pre_start command creates a symlink that works around a temporary directory issue with uv, the Python package manager. The start command runs the Scriberr binary.
Deploying to Upsun
With the configuration in place, create your Upsun project:Accessing Scriberr
Get your application URL:Conclusion
You now have a private transcription service running on your own infrastructure. Upload audio or video files, and Scriberr generates accurate transcriptions using AI speech recognition. Your transcriptions stay on your infrastructure. You control the data retention and access. And your costs are predictable regardless of transcription volume. For more details on Scriberr’s features and configuration options, see the Scriberr documentation.Ready to deploy your own AI-powered services? Start your free Upsun trial and get your applications running in minutes.