Skip to main content

Sync Images with S3‑Compatible Storage

S3 is a widely used cloud storage service, and you can use it to store images. OpenNotas currently supports storage providers that are compatible with S3.

Note: The image‑sync feature works only with the Milkdown editor. Starting from version 1.3.0, images added in the app will be synced automatically when syncing is turned on. Make sure the storage bucket has enough space to hold the uploaded images.

How to Obtain the Configuration

Depending on the storage provider, refer to its documentation to get the required settings. In short, you need the bucket URL and the access credentials (access key ID and secret access key) to enable image syncing.

S3‑compatible storage providers

Free providers (with storage limits)

You can also run your own S3‑compatible bucket using open‑source tools such as MinIO or Ceph.

Typical setup steps

  1. Create a storage bucket with your provider.
  2. Create a bucket (object container) inside the storage.
  3. Generate an access token (access‑key ID + secret key).
  4. Enter the configuration in OpenNotas.
  5. Click Test Connection. If successful, you’ll see “Connected”. If not, double‑check the settings and try again.

In‑App Configuration

Go to Settings > Sync, enable Image Sync, and fill in the required fields.

Note: You need to deploy your own Worker Proxy for image syncing. The source code for the Worker Proxy is available here. It is built for Cloudflare Workers because the platform is free and works well for personal use. If you don’t set up a custom Worker Proxy, the app will use the default proxy provided by OpenNotas. We do not log any credentials, but the shared proxy is limited to 100 000 requests per day and may be slower. For better performance and security, we recommend deploying your own Worker Proxy.

Deploying a Worker Proxy

  1. Sign up for a free Cloudflare account.
  2. Clone the repository:
git clone https://github.com/tonghoai/opennotas.git
  1. Change to the proxy directory:
cd opennotas/worker/worker-proxy
  1. Install dependencies (requires Node.js ≥ 18):
npm install
  1. Deploy to Cloudflare Workers:
npm run deploy

The deployment console will display the Worker Proxy URL. Save this URL and use it in the OpenNotas configuration.