To host your own images, run a photo or gallery application on your server, give it durable storage for originals and generated files, provide the database it requires, and put the web interface behind HTTPS. Immich is the closest fit to a Google Photos-style backup and search experience, Piwigo suits a traditional web gallery, and Nextcloud makes more sense when images must live alongside general files and collaboration.
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
The reliable setup is not just an application install. You must plan space for thumbnails and video transcodes, keep the database on supported local storage, secure any public endpoint, and maintain independent backups of both media and database data.
As an Amazon Associate I earn from qualifying purchases.
What a self-hosted image host actually contains
A self-hosted image service is a small stack of cooperating parts rather than a single folder exposed to the internet:
- Image application: The web and mobile-facing software that uploads, organizes, searches, displays and shares pictures. Immich, Piwigo and Nextcloud take different approaches.
- Original-media storage: The durable location for full-resolution photographs and videos. This is the data you cannot recreate if a disk fails.
- Generated files: Thumbnails, resized previews, cached variants and, where applicable, transcoded video. These improve browsing but consume additional capacity.
- Database: The catalog of users, albums, metadata, permissions and other application state. Immich uses PostgreSQL; Piwigo requires MySQL or MariaDB. A Nextcloud deployment also has a database, with the exact choice determined by its installation.
- Web endpoint: A private-network address or an internet-facing domain, normally terminated with HTTPS by a reverse proxy.
Keeping these roles separate makes troubleshooting and recovery easier. A damaged thumbnail cache can usually be regenerated; a lost original or database cannot.
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
Choose the application before buying hardware
Pick the workload first. The best software is determined by how you expect to use the server, not by which installation looks shortest.
| Platform | Best fit | Documented stack | Storage and operations to plan for |
|---|---|---|---|
| Immich | Phone backup, photo and video search, albums and a Google Photos-style interface | Docker-based application with a PostgreSQL database | Current requirements call for at least 6 GB RAM and 2 CPU cores; 8 GB RAM and 4 cores are recommended. Keep PostgreSQL on local SSD storage. |
| Piwigo | A conventional web gallery managed through a PHP hosting stack | Nginx or Apache, PHP 8.2 or newer on the maintained path, MySQL 5.6+ or MariaDB 10.1+, plus ImageMagick or GD | Allow room for originals and cached multiple sizes. An FTP client is part of the documented upload workflow. |
| Nextcloud | Images that must share a platform with general files and collaboration | Nextcloud server with its normal database and preview-generation components | Preview generation and HTTPS hardening are administration tasks; exact resource needs vary with the rest of the Nextcloud workload. |
Immich is the natural starting point when automatic phone backup and a dedicated photo library are the priority. Piwigo is more appropriate when you already operate PHP and database hosting and want a gallery-oriented site. Choose Nextcloud when photos are one part of a broader file-sharing system rather than the sole purpose of the server.
Plan storage, filesystems and hardware
Calculate capacity from originals and derivatives
Do not size the disk to the current folder of originals alone. Immich documents that thumbnail generation and transcoded video add 10–20% on average to the photo library. That is an average, not a ceiling: a library with many videos or several generated sizes can behave differently.
A simple planning model is:
required working space = originals + (10% to 20% derivative allowance) + free headroom
For example, 2 TB of originals implies roughly 2.2–2.4 TB before you reserve additional room for growth, temporary processing and the operating system. Piwigo likewise requires capacity for uploaded pictures and cached multiple sizes.
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
Put the database on supported local storage
Immich recommends local SSD storage for PostgreSQL and states that network shares are not supported for that database location. Store the database on a reliable local disk with ownership and permission behavior the software expects. A network share can still be considered for media only when the application and filesystem requirements support that arrangement; do not assume a NAS mount is valid for every component.
Use a Unix-compatible filesystem and deliberate permissions
The Immich library should use a Unix-compatible filesystem that preserves ownership and permissions. Create a dedicated service account or otherwise apply the least privilege needed by the container and web process. Avoid making the entire media volume world-writable just to get an upload working; a permissive workaround can expose every original file if the server is later compromised.
Match compute to the chosen platform
For current Immich deployments, treat 6 GB of RAM and 2 CPU cores as the minimum documented baseline, with 8 GB and 4 cores recommended. An older quick-start page mentioned 4 GB RAM and 2 CPUs, but the current requirements page supersedes that figure for present-day planning. Piwigo’s documented prerequisites emphasize the web server, PHP, database and image-processing libraries rather than a single universal RAM number. Nextcloud’s load depends on previews, file sharing and the other applications enabled on the server.
Install Immich with the official Docker workflow
Immich’s quick start is the most direct route to a dedicated, self-hosted photo service. Use the release-matched files and instructions from its official documentation; configuration names and backup procedures can change between releases.
- Create an application directory. Keep the Compose file, environment file and deployment data together in a dedicated directory rather than mixing them with unrelated services.
- Download the official
docker-compose.ymland environment template. Use the files for the release you intend to run. Do not copy a Compose file from an unrelated version. - Set the media location. Edit the environment configuration so
UPLOAD_LOCATIONpoints to the filesystem that will hold originals and generated media. Verify that the container can write there and that the path is included in your backup plan. - Set the database variables. Keep the database credentials and connection values from the supplied template consistent with the Compose services. Store secrets with permissions that prevent ordinary users from reading them.
- Start the stack. From the application directory, run
docker compose up -d. Check the container status and logs before attempting a large import. - Complete first-run registration. Open the web interface, register the first administrator and upload one test picture. Confirm that the original appears, a thumbnail is generated and the database-backed catalog updates.
- Test a video if you plan to store videos. Transcoding is one reason the library grows beyond the original files, so validate processing before committing your entire archive.
- Record the release and configuration. Keep the Compose files, environment values, storage paths and administrator recovery information in your operational notes, without publishing secrets.
Immich’s own quick-start warning is explicit: “Do not use it as the only way to store your photos and videos!” Treat the application as a catalog and access layer, not as your sole copy of irreplaceable media.
Free tools Windows power users keep installed
One-click scans. No signup required.
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
Install Piwigo on a conventional web stack
Piwigo follows a more traditional hosting model than Immich. It is a good fit when you already maintain a PHP site and want a gallery rather than a Docker-centric photo appliance.
Meet the documented prerequisites
- A web server such as Nginx or Apache.
- PHP 8.2 or newer for the current maintained path.
- MySQL 5.6 or newer, or MariaDB 10.1 or newer.
- ImageMagick or GD for image processing.
- Enough storage for originals plus cached multiple sizes.
- An FTP client for uploading files; the project specifically recommends FileZilla.
Lay out the service
Place the Piwigo application under the web server’s designated site directory, create its database and database user, and grant only the permissions required by the installation. Use the browser-based installer supplied with the release to enter the database connection and administrator details. Upload photographs through the documented FTP workflow, then allow the application to build its cached sizes.
Because Piwigo creates additional sizes, monitor free space after the first substantial import. A server that has room for the original archive but not the cache will fail during processing even though the upload itself succeeded.
Use Nextcloud when photos belong with other files
Nextcloud is broader than a dedicated gallery: it combines file storage and sharing with image previews and other collaboration features. It is the sensible choice when the same accounts and storage must serve documents, project files and photographs.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minuteInstall Nextcloud using the deployment method appropriate to your server, then configure image preview generation in the administration settings covered by its hardening guidance. Preview jobs consume storage and compute, so enable only the preview formats and sizes you need. Keep the public-facing service on HTTPS and apply the hardening recommendations for your web server and deployment method.
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
Nextcloud’s advantage is consolidation. Its trade-off is that photo browsing, preview generation and sharing compete with every other enabled application for the same resources. If the server’s sole purpose is camera backup and photo search, a dedicated photo application is usually easier to size and operate.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Expose the service safely
Keep a private installation private
For household or office use, the safest exposure model is to leave the service on the private network or make it reachable through a VPN. Do not forward a web port to the public internet merely because the local URL works. A private address also avoids certificate and account exposure issues while you are still testing storage, permissions and backups.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Prepare a public endpoint only when you need one
If you need access while away from home, use a domain name, an HTTPS certificate and a reverse proxy. Immich’s guidance identifies Let’s Encrypt as a free certificate source and Nginx as a reverse-proxy option. The proxy should terminate TLS and forward requests to the internal application address; the database should never be exposed directly to the internet.
Configure proxy behavior for real photo uploads
Set the application’s front-facing URL to the public HTTPS address so links and callbacks use the correct scheme and host. Allow request bodies large enough for the files your users upload; an undersized proxy limit produces failures that look like application errors. Enable WebSockets where the application requires them, otherwise live status updates and some interactive features may fail even though the login page loads. Immich publishes Nginx and Apache examples; adapt the example to your own host rather than copying directives blindly.
Apply network and account controls
- Use a strong, unique administrator password and protect any recovery codes.
- Restrict inbound traffic with a firewall to the ports and source networks you actually need.
- Keep the database bound to the internal service network, not a public interface.
- Run services with the least file privileges that still permit uploads and processing.
- Apply application, operating-system and container updates promptly, especially for an internet-facing deployment.
Immich notes that a public instance carries security risk because the project is under active development. That is a reason to reduce exposure and update deliberately, not a reason to skip HTTPS.
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
Back up media and the database independently
Protect the irreplaceable files
Back up the complete media tree, including the path configured by UPLOAD_LOCATION for Immich and the original and cache locations used by your gallery. Keep at least one copy on different storage from the live server. A second disk in the same chassis helps with some failures, but it is not protection from theft, fire or a failed power supply affecting the whole machine.
Protect the catalog and configuration
Back up the database separately from the media. The database contains users, albums, permissions and metadata that a file-only copy cannot recreate. Also preserve the Compose files, environment configuration and any reverse-proxy configuration needed to rebuild the service.
Practice a restore
A backup is unproven until you restore it. Periodically build a test instance, restore the database and media, then verify administrator login, album visibility, representative originals, thumbnails and video playback. Keep the restore notes with the backup so another person can follow them.
Immich’s backup procedure is version-sensitive; its documentation records a change in version 2.5.0. Follow instructions that match the installed release rather than assuming an older dump or file-copy procedure remains valid.
Troubleshoot by symptom
| Symptom | Likely area | What to check |
|---|---|---|
| Uploads fail only when files are large | Reverse proxy request limit | Raise the allowed request-body size in the proxy and confirm the application-facing URL is correct. |
| The page loads but live progress or interactive updates do not | WebSocket forwarding | Enable WebSocket support in the proxy configuration and reload it. |
| The application cannot create thumbnails or originals | Filesystem ownership or permissions | Check the service account, Unix ownership and write access to the configured media path. |
| The database is slow or unreliable on a mounted share | Unsupported database location | Move Immich’s PostgreSQL data to supported local SSD storage; retain the share, if appropriate, for media rather than the database. |
| Disk space disappears after importing videos | Generated derivatives | Account for thumbnails, resized files and video transcodes; compare actual growth with the reserved capacity. |
| The service works locally but not from the internet | DNS, firewall or TLS path | Verify the domain resolves to the correct address, the firewall permits only the intended HTTPS path, and the certificate matches the hostname. |
| A restore produces an empty or incomplete library | Incomplete backup set or release mismatch | Restore both database and media, use release-matched instructions, and verify paths and permissions before testing accounts. |
A deployment checklist
- Choose Immich, Piwigo or Nextcloud according to the primary job: dedicated photo management, conventional gallery hosting or general file collaboration.
- Inventory originals and videos, then reserve derivative space and future growth.
- Confirm the server meets the selected platform’s current prerequisites, including Immich’s 6 GB/2-core minimum or 8 GB/4-core recommendation when applicable.
- Place databases on supported reliable storage and use a filesystem with correct ownership semantics.
- Complete a small test upload before importing the archive.
- For remote access, use a domain, HTTPS, a reverse proxy, firewall rules and non-public database networking.
- Back up media, database and configuration separately, with at least one copy on different storage.
- Perform a test restore and record the exact software release used.
With those controls in place, a home server can provide private photo storage without surrendering the originals to a hosted service. The application supplies the viewing and search experience; your storage design, network boundary and restore discipline determine whether the system remains dependable.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




