MassEdit Docker Edition

Self-host the complete bulk find and replace tool for Google Docs and Google Slides — your documents stay in your Google Drive, your data stays in your container.

Pull from Docker Hub Quick Start

Multi-architecture image · linux/amd64 · linux/arm64 · Apple Silicon · Raspberry Pi 4+ · AWS Graviton

Why self-host MassEdit?

🔒

Your data stays yours

The container runs entirely inside your infrastructure. Documents are read and written directly through the Google Docs and Drive APIs using your own Google Cloud OAuth credentials. No data ever passes through Exis servers.

🏢

Compliance-friendly

Meets internal data residency, audit, and network egress policies for regulated industries. Deploy on-premises, in your private VPC, behind your firewall, or in an air-gapped network with outbound access to Google APIs.

🔧

Your ops, your rules

Standard Docker deployment. Put your own reverse proxy in front of it, wire it into your SSO via OAuth later, back up a single SQLite volume, and roll out upgrades on your schedule with docker compose pull.

Up and running in under 2 minutes

Pull the image, start the container, open the homepage. The landing page shows a one-time bootstrap admin password on first launch — sign in, change it, and complete the setup checklist. No environment variables required.

  • SQLite database, encrypted at rest via SQLCipher
  • Non-root container user, minimal attack surface
  • Built-in HEALTHCHECK endpoint for orchestrators
  • Single named volume holds all state — back it up and you're covered
docker pull exisllc/massedit docker compose up -d

Setup in four steps

1

Pull and run

Copy the docker-compose.yml from Docker Hub or our repository, then run docker compose up -d. The container listens on port 8080.

2

Sign in as admin

Open the homepage. It shows a one-time 16-character bootstrap admin password. Sign in and change it — the password is cleared from the database as soon as you do.

3

Configure Google OAuth

Create your own Google Cloud project, enable the Docs/Slides/Drive APIs, and paste your OAuth client ID and secret into Admin → Google Settings. Step-by-step instructions are built into the UI.

4

Add your team

Invite users from Admin → Users. Configure SMTP or Microsoft Graph OAuth in Admin → Email Settings for automatic welcome emails and password resets, or share temporary passwords manually.

Full feature parity with the SaaS version

No cut-down "enterprise" stub. The Docker image is the same application our hosted customers use, packaged for self-deployment.

📝

Bulk find and replace across Google Docs

Apply hundreds of rules across hundreds of documents in a single job. Full regex support with capture groups, lookaheads, and case-insensitive matching.

🎨

Formatting-aware replacements

Match text by bold, italic, colour, or font; apply formatting to the replacement. Same engine as the hosted edition.

🖼️

Image replacement

Swap logos, headers, and graphics across every selected document in one pass. Works on both Docs and Slides.

📁

Folder browser with Shared Drives

Navigate My Drive, Shared with me, and Shared Drives directly from the wizard. No separate picker popup to fight with.

🔐

Built-in multi-user with MFA

Admins provision accounts through the UI. Each user signs in with their own Google account via OAuth. Optional TOTP multi-factor authentication, configurable site-wide or per-user.

📨

Flexible email delivery

Pluggable email providers: Gmail SMTP, Office 365 SMTP, custom SMTP, or Microsoft Graph OAuth (for orgs that have disabled SMTP basic auth). Configured through the admin UI, encrypted at rest.

Trial mode out of the box, corporate license when you're ready

Every container starts in a 14-day trial (5 documents per job, 10 rules per job, must create copies of originals). When you're ready to roll it out to your team, get a corporate license key from us and paste it into Admin → License Settings. Each user consumes one seat; adding or removing users automatically activates or releases seats.

Docker edition FAQ

Which architectures does the image support?

The published image is multi-arch and runs natively on linux/amd64 and linux/arm64. That covers x86 servers, Apple Silicon Macs, AWS Graviton instances, and Raspberry Pi 4 or later. Docker automatically pulls the right variant for your host.

How does the Docker edition handle licensing?

Every fresh container starts in trial mode with the same limits as the hosted trial (5 docs per job, 10 rules per job, no modifying originals). To unlock unlimited use, you purchase a corporate license key and enter it in the admin UI. The key activates per-user seats against our licensing server; adding or removing users activates or releases seats automatically.

Does the container need outbound internet access?

Yes, but only to two sets of endpoints: Google's APIs (to actually read and write your documents) and our licensing server (for trial state and corporate seat validation). Your documents themselves only ever travel between the container and Google — they never pass through Exis servers.

Where is the database stored and how do I back it up?

All state lives in a single encrypted SQLite file under /app/data/massedit.db, exposed as a named volume (massedit-data) in the default docker-compose.yml. The file is encrypted at rest with SQLCipher. Back up the volume using any standard Docker volume backup technique — one tar.gz is your entire disaster-recovery package.

Do I need HTTPS?

In production, yes — and you terminate it at your own reverse proxy. The container listens on plain HTTP inside your network, and you put Caddy, Nginx, Traefik, or Cloudflare Tunnel in front. The Docker Hub overview has copy-paste-ready reverse proxy configs for both Caddy and Nginx.

Can I use my existing Google Workspace SSO?

Users sign in to MassEdit with a local admin-provisioned account, then connect their Google account via OAuth to access Drive. We're adding direct Google Workspace SSO as a login method — contact us if that's a blocker for your deployment.

How do I update the image?

Pin to a specific tag like exisllc/massedit:1.0.0 in production and run docker compose pull && docker compose up -d when you want to roll forward. Database migrations run automatically on container start. Your data and configuration survive untouched through every upgrade as long as the named volume isn't deleted.

Is the source available?

The Docker image is proprietary, the same way the SaaS is. Source access and custom builds are available to enterprise customers under a separate agreement — contact sales to discuss.

Ready to self-host?

The image is live on Docker Hub. Pull it, point it at your own Google Cloud project, and start editing.

exisllc/massedit on Docker Hub →