đ¤ Set up Cloudinary (free photo & video upload)
To upload photos and videos directly in the ViralDM Post Scheduler, you need a free Cloudinary account. Cloudinary gives you 25 GB storage + 25 GB monthly bandwidth forever, with no credit card. You only add 4 environment variables to your server dashboard.
Create a free Cloudinary account
No card, no upgrade prompts. Just sign up with an email.
- Open cloudinary.com/users/register_free
- Sign up with email and password (Google sign-in also works)
- Choose account type "Developer" (the default is fine)
- Verify your email (check your inbox)
Copy your Cloud Name
This is your unique Cloudinary identifier.
- On the dashboard, "Cloud name" appears in the top-left corner (e.g.
dxabc123) - Copy it â you will need it in Step 5
Create an unsigned upload preset
"Unsigned" means the browser can upload directly, so your server carries no load. It stays safe because the restrictions live inside the preset.
- Open Settings (âī¸ gear icon) from the left sidebar
- Go to the Upload tab
- Scroll down to the "Upload presets" section
- Click "Add upload preset"
- Name the preset
viraldm_unsigned(any name works) - Signing Mode: choose "Unsigned" (this one matters)
- Folder (optional): set
viraldmto keep things tidy - Optional restrictions, for safety:
- Max file size: 100000000 (100 MB)
- Allowed formats:
jpg,png,gif,webp,mp4,mov
- Click Save
- Copy the preset name you just set (e.g.
viraldm_unsigned)
Get your API key and secret (for auto-delete)
Once a post is published, ViralDM deletes the file from Cloudinary to save storage. That delete is a signed API call, so it needs admin credentials.
- Open the Cloudinary dashboard
- Click your avatar in the top-right corner â "Settings"
- Left sidebar â "API Keys" tab
- You will see the API Key (a 15-digit number) and the API Secret (click "Reveal")
- Copy both and keep them safe â you need them in Step 5
Add the environment variables to your server
This tells ViralDM which Cloudinary account to use, and which credentials to delete with.
- Open your hosting dashboard and select the ViralDM app
- Open the Environment Variables section
- Add these four variables:
| Key | Value |
|---|---|
| CLOUDINARY_CLOUD_NAME | dxabc123 (Step 2) |
| CLOUDINARY_UPLOAD_PRESET | viraldm_unsigned (Step 3) |
| CLOUDINARY_API_KEY | 123456789012345 (Step 4 â for auto-delete) |
| CLOUDINARY_API_SECRET | abc...xyz (Step 4 â keep this secret) |
Save and redeploy (about 2 minutes).
Test it
To confirm everything is working.
- After the redeploy, open /dashboard/posts
- The "Photo / Video" section now shows a drag & drop area instead of a URL box
- Drag in a test image â an upload progress bar appears
- When the upload finishes you get a preview
- Done â
FAQ
Is it really free forever?
Yes. Cloudinary's free tier is permanent â 25 GB storage and 25 GB bandwidth a month. For a solo creator that can last years, and you do not need to add a card unless you cross the limit, which most people never do.
Will my users upload to my Cloudinary account?
Yes â all your end users share one central Cloudinary account, yours. That is the standard SaaS pattern, and 25 GB holds thousands of posts.
What if the storage fills up?
In practice it will not â ViralDM cleans up automatically. The moment Instagram publishes a post, the file is deleted from Cloudinary (Instagram serves its own CDN copy). Only scheduled-but-not-yet-published files sit there, which averages 50-200 MB at any time even with thousands of creators.
Is this approved by Instagram?
Yes. Cloudinary CDN URLs are HTTPS and are accepted directly as image_url / video_url by the Instagram Content Publishing API. Many large SaaS products use exactly this (Hootsuite, Buffer and others).
What are the alternatives to Cloudinary?
ImageKit.io (20 GB free, an Indian company) and Bunny.net ($0.01/GB after the free credit) are both good. Cloudinary's free tier is simply the most generous for video.