For my Masters thesis project, I’m required to keep a blog documenting my progress, and being the open source/self hosting guy that I am, I decided to host my own WriteFreely instance on my VPS.
The problem is, WriteFreely doesn’t support direct image uploads, only embeds. I’d of course like to self host my images for the blog too, so I’m in need of a really lightweight image hosting solution. Things like Immich or Nextcloud are far too much for what I need, I basically just need a password-protected upload interface and the ability to grab the direct links to the images to embed them. I don’t need analytics or account management or anything like that.
I know I could transfer images to my server directly via scp or rsync or ftp and host them behind nginx directly, but that’s a faff and I’d rather just deploy a container once and be done with it.
Does anyone have any recommendations?
Can you encode them as base64 URL?
Wait, that’s actually a very good point. I didn’t think of that!
@SpatchyIsOnline — have you looked at Coppice or Zipline? Both are purpose-built for exactly this use case: drop a file, get a direct link, done. No analytics bloat, no user management unless you want it, just containerized and ready. Zipline especially is Docker-native and the config is a single YAML. Since you’re already running WriteFreely on a VPS, spinning up another lightweight container shouldn’t hurt your resource budget. More minimal stack examples at https://cxgo.ai/l/D0MLVun if you’re comparing options.
Things like Immich or Nextcloud are far too much for what I need, I basically just need a password-protected upload interface and the ability to grab the direct links to the images to embed them.
Why do you care that they do things you don’t need if they also do what you need?
Because these do just what you need and do it well.
On my homelab I don’t mind so much as I have 64gb of ram and and 8tb of storage, but on my vps I want everything to be relatively lightweight
You could use apache to create a webdav share. I bet there’s a pre built container for it.
Webdav is really underrated, imo.
There is also copyparty. Spin up the docker container, upload your images, copy/paste the links, boom.
@Alfredolin @SpatchyIsOnline cool. Please DM if you wanted to list your service on https://kubeara.dev/ . We are one click deployment solution for self hosted servers.
Just curious, what about scp-ing to your server is less than ideal for you? I would think a static server with nginx or similar would be an easy one time setup and then you do a single command to scp to it whenever you want to add images. No redeploy necessary. I would almost consider that easier than other bespoke solutions that you would have to learn
I would like the option to be able to upload images from a multitude of devices like my phone or even a university PC if necessary. I don’t want to have to worry about setting up public key access on every device I might reasonably want to use.
I’m a developer and have daily driven Linux for nearly 3 years, so I’m beyond familiar with terminal usage, but scp isn’t exactly what I’d call a pleasent or convenient command. Every time I have to use it my immediate mood is
ugh >:(notyippee :)I have a similar relationship with
iptables. Like, I can do it, but it’s the boring stuff I gotta get out of the way to make the interesting stuff work.edit: thought of another one. Any time I’ve ever opened
xorg.conf, I was having a bad time.You can make a new user on the server with password login, and just access it with SFTP. Most graphical file explorers can do SFTP.
Yep, you could also put any portable SFTP program on a thumb drive and SFTP it to your box from any computer you are at.
Yep) My program for that purpose: https://codeberg.org/nykula/imgie - resurrected three months ago because another person on PieFed reminded me of it. Should just work. Ping me if it doesn’t.
Doood.
npmin production is a bad pattern in this age of supply-chain sploits. Best vendor that into the artifact when ya ship … Nevermind.I can make a Docker image, like the one I made for Lanquiz. It’s not high on my to do list, though. Before that, I want to update integration tests (working draft still not committed), and store data under system-specific paths not in repo subdirectories (breaking change).
Yah, or Slink maybe.
You could throw Garage or Minio in a container and upload the images to a public bucket.
Yes, you can expose a bucket as a website for easy access.
I personally do ShareX, with an SFTP destination for an nginx webserver. It has an image editor built in as part of the workflow if you enable it, and it can automatically copy the clipboard URL.
You could certainly go the extra mile and setup an image sharing manager or a more complicated solution if you wanted to though, if that makes overall administration easier.
https://github.com/andrii-kryvoviaz/slink from https://selfh.st/apps/?tag=Image+Sharing
https://github.com/mtlynch/picoshare from https://selfh.st/apps/?tag=File+Sharing
Seems like these could fit the bill.
Thanks, I decided to go with Slink. It looks lightweight enough, easy to set up and while not quite as minimal as I was imagining, that image resize ability when generating shared links could come in useful
@SpatchyIsOnline @darcmage that’s a great choice. Any plan how will you deploy it on your server and keep watch for CPU?
I already have it up and running! They have a good docker-compose example on their site.
As for monitoring, my approach is to use it and if it works, then there’s nothing to worry about 😅
@SpatchyIsOnline you can try https://kubeara.dev/ I found it easy to deploy/manage services and keep watch on CPUs.





