ImageHost
Free PHP script to run your own image hosting website. Visitors upload images and get share links and embed codes. Members get albums, an API key and two-factor sign in. You run everything from a separate admin panel.
- ImageHost
A free and open source (GPL v3) image hosting script with no framework and no dependencies. Upload it, open your domain, and the installer sets up SQLite (zero setup) or MySQL in a minute. Visitors get share links and embed codes, members get albums and an upload API, and you control limits, security, SEO and storage from a separate admin panel.
Features
- Fast uploadsDrag and drop, file picker or Ctrl+V paste, three files at a time with progress and retry. Upload from URLs, or scan any web page and pick the images to copy. Works without JavaScript too.
- Every link formatShare page, direct link, HTML and BBCode (thumbnail or full size) and Markdown for each image, plus a private delete link for guests.
- Safe image handlingFile types are detected from the content, never the name. Photos are turned upright and stripped of EXIF and GPS data, thumbnails are made in WebP, and oversized or fake images are refused.
- Member accountsAlbums (public or private), search and bulk tools, a public profile that can be made private, and personal API keys with one-click ShareX setup.
- Account securityTwo-factor sign in with an authenticator app and 8 recovery codes, emailed sign-in codes, new-device alerts, the last 7 sign-ins, and account deletion confirmed by email.
- Separate admin panelIts own address, sign in and session, idle timeout, IP lock and allow list, required 2FA and an activity log. Signing in as a member never gives admin rights.
- Upload APISend images from your own scripts, apps or ShareX with one POST request and an API key. You get back JSON with every link.
- SEO and sitemapsTitle format, descriptions, Open Graph and X cards, Google and Bing verification, a robots.txt editor and split sitemaps that never list private images or profiles.
- Cloudflare R2 offloadStore images in a Cloudflare R2 bucket and serve them from r2.dev or your own domain. Move existing images in batches.
- DMCA and moderationA public takedown form, notices with status and notes, block removed files from being uploaded again, reports, bans and bulk delete by filters.
- Built to stay fastIndexed queries, cached counts and sitemaps, minified pages, and logs cleared automatically after 72 hours, so the site does not slow down as it grows.
- One-click updatesUpload the new ZIP under Admin > Updates. Your code is backed up first and can be restored with one click. Settings, images and the database are kept.
Screenshots
How to use
- Download the ZIP and upload the imagehost folder to your server (web root or any sub folder).
- Make storage/ and uploads/ writable, then open the site in a browser.
- The installer checks the server, lets you pick SQLite or MySQL, and creates your main admin account.
- Sign in to the admin panel at /admin/login, set your site address, limits and mail, and move the admin to a private address.
- Share your site. Visitors upload images and get links instantly.
Why self-hosted?
- Own your imagesImages stay on your server or your own R2 bucket. No third-party host can delete them, compress them or put ads on them.
- Your brand, your rulesYour name, colours, favicon, pages, ads and limits. Light and dark mode included.
- Light to runPlain PHP with SQLite needs no database server, so it runs on cheap shared hosting as well as a VPS.
FAQ
Is ImageHost really free?
Yes. ImageHost is free and open source under the GNU General Public License version 3, for personal and commercial sites. The license adds one term under GPL section 7(b): keep the Developed by Quintaphon Services credit visible in the footer. The full text is in LICENSE.txt in the ZIP.
What do I need to run it?
PHP 8.1 or newer with PDO (SQLite or MySQL), GD and mbstring. cURL, EXIF and zip are recommended. Apache with mod_rewrite, LiteSpeed or Nginx all work.
Do I need a MySQL database?
No. Pick SQLite in the installer and the database is a single file in the storage folder. Choose MySQL or MariaDB for very busy sites.
Can I upload images from my own scripts?
Yes. Every member has an API key under Account settings. Send a POST request with the image and the key to /api/upload and you get JSON back with the share link, direct link and every embed code. The docs have ready examples for cURL, PHP, Python and JavaScript.
How do I update to a new version?
Use Check for a newer version under Admin > Updates, download the new ZIP and upload it on the same page. Your code is backed up first, and database changes run by themselves.
Can I store images on Cloudflare R2?
Yes. Add your bucket details under Admin > Storage, test the connection, and new uploads are offloaded automatically. Existing images can be moved in batches.
How do I get help?
Read the full documentation, or contact us through the support page.
What's new
- 1.1.1(October 23, 2026)Far fewer session files on the server: guests and search engine crawlers no longer create one on every visit. A guest's form token now lives in a cookie, the math captcha and guest view counts need no session, and scheduled jobs remove idle guest sessions after 2 hours.
- 1.1.0(October 23, 2026)First public release, free and open source under the GPL v3. Built for PHP 8.1 to 8.5 with SQLite or MySQL: separate admin area with two-factor sign in, member security and recovery codes, captcha per form, DMCA notices, bulk tools, SEO and permalinks, split sitemaps, Cloudflare R2 offload, ZIP updates with backup and restore, and an upload API with ShareX support.