Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Ampache is free, self-hosted software for managing and streaming a personal music or video library. On a Linux VPS, the reliable deployment recipe is Ampache 8 with PHP 8.5 or newer, MySQL 8 or MariaDB 10 or newer, a readable media directory, URL rewriting, and HTTPS. Docker Compose is the fastest repeatable installation; a native Apache/MariaDB/PHP stack gives you finer control and is easier to share with other sites.

What Ampache does on a VPS

Ampache combines a web interface, catalog database, transcoding pipeline, and APIs in one server application. Your VPS stores the library and serves audio to a browser or compatible mobile and desktop application. Because the server is yours, the original files remain under your control and you decide which accounts, devices, and network paths can reach them.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Ampache 8 is the current line for servers running PHP 8.5 or newer. Ampache 7 supports PHP 7.4 through 8.4, so a host that cannot provide PHP 8.5 must use the older branch instead of attempting to run Ampache 8. The project documentation does not publish a universal concurrent-user, storage, or bandwidth benchmark; size the VPS from your library, transcoding needs, and expected traffic rather than a claimed capacity figure.

Requirements and choices before installation

Software requirements

  • PHP 8.5 or newer for Ampache 8, with the extensions reported by Ampache’s Composer requirements and installer checks.
  • MySQL 8.x or MariaDB 10.x or newer.
  • A supported web server. Apache receives the most testing; nginx, lighttpd, Caddy, and IIS are also supported.
  • A media directory readable by the web-server or container user.
  • URL rewriting. Without it, normal pages may load while streaming and APIs fail.
  • Transcoding programs for the formats and output qualities you intend to offer.
  • A DNS name and TLS certificate when the service will be reachable outside a private network.

Ubuntu version used in the maintained guide

The current Ubuntu installation guide uses Ubuntu 26.04 LTS because that release provides PHP 8.5 in its main archive. On another distribution, confirm that the distribution’s PHP version and extensions satisfy the Ampache branch you choose before downloading files.

#1 Best Overall
Sale
Compressed Air Duster,130000RPM Super Power Cordless Air Duster,Rechargeable Brushless Blower,3 Gear Adjustable Blower with LED Light,Dust Remover for Computer/House/Outdoor/Car
  • Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
  • With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
  • Wide Application: attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
  • Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
  • Economical &Reusable: Built durable materials with a long-lasting battery,our CAGIWIRU air duster it's a sustainable alternative to disposable air cans.

Docker image platforms

The official image is published for linux/amd64, linux/arm/v7, and linux/arm64. Check your VPS architecture with uname -m before pulling an image, particularly on ARM instances.

Docker or native packages?

Decision point Docker Compose Native Apache/MariaDB/PHP
Setup speed and repeatability Fastest path; the application and its runtime are recreated from a Compose file. More individual packages and web-server configuration, but each component is visible to the operating system.
Control of PHP, web server, and permissions Container defaults reduce host changes; bind mounts still require correct ownership and labels. Maximum control over Apache or nginx, PHP workers, filesystem users, and virtual hosts.
Upgrades and rollback Pull a tested, pinned image and recreate the container; reverting means starting the previous tag. Update packages and the Ampache release separately, with more manual rollback points.
Backups Back up database, configuration, logs, and the media mount or its source. Back up the same data plus any host-level virtual-host and PHP configuration you changed.
HTTPS and reverse proxy Often a separate proxy in front of the container; public URL settings must match the proxy. TLS can terminate directly in Apache or nginx, or at another proxy.
Sharing a VPS with other applications Separate containers reduce package conflicts; reserve ports and resources deliberately. One web stack can host several sites, but PHP modules and configuration are shared.

Deploy with Docker Compose

Compose is the practical default when you want a reproducible VPS installation. Keep the media library separate from Ampache’s writable state: mount music read-only, while configuration, database files, and logs remain persistent and writable.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

1. Install Docker and create persistent directories

Install Docker Engine and the Compose plugin using your distribution’s supported packages. Then create a project directory and data paths:

mkdir -p ~/ampache/data/{media,mysql,config,log}
cd ~/ampache

Place or mount your existing music library at ~/ampache/data/media. If the library already lives elsewhere, use its absolute path in the Compose file instead.

2. Create a Compose file

This minimal service follows the documented persistent mount layout. Pin a tested release tag when predictable upgrades matter; do not use a floating development image for a production library.

services:
  ampache:
    image: ampache/ampache:8
    container_name: ampache
    restart: unless-stopped
    ports:
      - "127.0.0.1:8080:80"
    volumes:
      - ./data/media:/media:ro
      - ./data/mysql:/var/lib/mysql
      - ./data/config:/var/www/config
      - ./data/log:/var/log/ampache

Binding the port to 127.0.0.1 keeps the container off the public interface so Apache, nginx, or another TLS proxy can be the only internet-facing service. If you are testing on a private network without a proxy, bind to the VPS address instead and apply firewall rules.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
EVEO® Screen Cleaner Spray Kit (Streak-Free) TV Screen Cleaner for Smart TV, Lcd, LEd, Oled | Computer Screen Cleaner Spray and Wipe Microfiber Cloth - TV, Monitor, Laptop, iPad, Car - 6.7oz 1 Pack
  • Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
  • Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
  • Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
  • Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
  • Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth

The project documents different stability expectations for latest, develop, and preview. Choose a numbered release tag for a production server, record the tag in your backup notes, and read the upgrade notes before changing major versions.

3. Start the container and complete the installer

  1. Start the service with docker compose up -d.
  2. Check startup output with docker compose logs -f ampache and confirm that the container remains running.
  3. Open the local address through your proxy, or temporarily browse to the mapped port from a trusted network.
  4. Use the web installer to enter the database and administrator settings, or provide the image’s documented administrator variables before startup.
  5. Set the media path to /media inside Ampache. The host path is not visible from inside the container.
  6. Create a catalog and run the initial scan.

A catalog named music enables directory monitoring in the Docker guide. Other catalog names are updated by the hourly cron job, so use that name when you want the documented monitoring behavior or schedule your own scan.

4. Verify persistence and permissions

Stop and recreate the container with docker compose down followed by docker compose up -d. Your administrator account, catalog, and settings should remain because they live in the bind-mounted database and configuration directories. If they disappear, inspect the host paths and ownership before importing the library again.

The process must be able to write ./data/config, ./data/mysql, and ./data/log. Keep ./data/media read-only unless you intentionally enable uploads or tag editing. A read-only mount prevents an application mistake from changing the master files.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Install natively on Ubuntu with Apache

Choose a native installation when the VPS already hosts Apache and MariaDB, when you need host-level PHP control, or when several conventional web applications share one server. The maintained guide places Ampache at /var/www/ampache; it can also serve Ampache as the whole site, in a subfolder, or from its own hostname.

1. Prepare the operating system

On a sudo-enabled Ubuntu 26.04 LTS server, update packages and install Apache, MariaDB, PHP 8.5, the PHP extensions listed by Ampache’s installer, and the command-line transcoding tools required by your formats. A typical starting point is:

Rank #3
Sale
BladeHawks RGB Gaming Mouse Pad Extra Large Extended 31.5x12 Inch-Black | LED mouse pad with 14 lighting modes, covers keyboard & mouse, anti-slip rubber base, waterproof surface, USB powered
  • 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
  • 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
  • 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
  • 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
  • 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
sudo apt update
sudo apt install apache2 mariadb-server php8.5 php8.5-cli php8.5-mysql php8.5-xml php8.5-mbstring php8.5-curl php8.5-gd php8.5-intl php8.5-zip unzip ffmpeg
sudo systemctl enable --now apache2 mariadb

Package names differ outside Ubuntu. Treat the Ampache installer and Composer requirements as the authority for missing PHP extensions; do not proceed while the installer reports a failed requirement.

2. Place the Ampache release

Download a release archive from the official Ampache project, extract it under /var/www/ampache, and ensure Apache can read the application. A release ZIP avoids the Composer and npm build steps required by a Git checkout. If you use Git, install Composer and npm, then run the build commands specified for that release before exposing the site.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo mkdir -p /var/www/ampache
sudo chown -R www-data:www-data /var/www/ampache

The web-server user must be able to write Ampache’s configuration directory during installation. Music files themselves normally need only group-readable permissions. Enable write access to the library only if you deliberately use upload or tag-writing features.

3. Configure MariaDB and Ampache

Create a dedicated database and account in MariaDB, limiting the account to the Ampache database and a local connection. Do not expose MariaDB’s port to the public internet. Enter those credentials in the web installer, then choose the administrator password and initial catalog path.

4. Enable rewriting and allow the shipped rules

Enable Apache’s rewrite module:

sudo a2enmod rewrite

In the Ampache virtual host, set AllowOverride All for the Ampache directory so its shipped .htaccess files can operate. Keep the files supplied with the release in place. Validate and reload Apache:

sudo apachectl configtest
sudo systemctl reload apache2

Apache can host Ampache at the root of a dedicated hostname, below a path such as /ampache, or alongside other virtual hosts. A dedicated hostname usually produces the simplest public URLs and proxy rules.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
Sale
Vaydeer Wrist Rest for Keyboard and Mouse, Computer Ergonomic Wrist Support Pad, Soft Memory Foam Arm Cushion for Desk, Palm Hand Office Laptop Typing
  • 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
  • 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
  • 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
  • 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
  • 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.

5. Scan the library

In the administration interface, create a catalog pointing to the directory Apache can read. Run the first catalog update and confirm that albums, artists, artwork, and playable files appear. If files are missing, check the path from the server’s perspective and test read permission as the www-data user rather than as your own shell account.

Make streaming work through rewriting and proxies

Rewriting is not cosmetic. Ampache’s installation documentation warns: “Streaming, the Subsonic API and the REST API all stop working without it, usually with a 404 from every request.” — Ampache installation documentation.

Apache checks

  • Confirm mod_rewrite is enabled.
  • Confirm the relevant directory has AllowOverride All, not AllowOverride None.
  • Run apachectl configtest after every virtual-host change.
  • Reload Apache and retry a browser stream and an API request.
  • On recent Apache versions, add SetEnv ap_trust_cgilike_cl 1 in the /play directory when downloads or streams fail despite otherwise correct rewriting.

nginx, Caddy, or another server

Use the official server example for your web server and adapt its document root, PHP-FPM socket, and rewrite rules. Check the example after Ampache upgrades because REST paths can change between releases. A configuration that serves the login page but does not pass /play, Subsonic, or REST requests to Ampache is incomplete.

Reverse-proxy settings

When TLS terminates at a reverse proxy, Ampache must know the public HTTPS URL. Set its local_web_path and force_ssl values as described in the Docker documentation, and ensure the proxy forwards the original host and scheme. In nginx, set fastcgi_param HTTPS on; when SSL is terminated upstream; otherwise Ampache can generate HTTP links inside an HTTPS session, causing mixed content and failed callbacks.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Expose the service securely over HTTPS

  1. Point a DNS A or AAAA record at the VPS and use a real hostname rather than an unstable IP address.
  2. Terminate TLS in Apache, nginx, Caddy, or a dedicated reverse proxy and redirect plain HTTP to HTTPS.
  3. Allow only the web ports in the VPS firewall; keep SSH restricted to your administration network where practical.
  4. Bind MariaDB to localhost or the private container network. Never publish its port merely to make Ampache connect.
  5. Use a strong, unique Ampache administrator password and separate accounts for other listeners.
  6. Keep the media mount read-only unless a specific feature requires writes.
  7. Test the public URL in a private browser window, then test a stream and an API client from outside the VPS network.

HTTPS protects credentials and music requests in transit. The API documentation recommends SSL for security and privacy, so do not treat a plain-HTTP test setup as a finished remote deployment.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Catalogs, permissions, and storage layout

Think of three independent data classes:

  • Media: large, usually immutable audio and video files. Mount or expose it read-only and back it up from its original storage system.
  • Configuration: Ampache settings, URL information, and generated configuration. It must be writable during installation and preserved across upgrades.
  • Database and logs: catalog metadata, users, playlists, and diagnostics. Keep them on persistent storage and include them in scheduled backups.

For Docker, the documented paths are ./data/media to /media, ./data/mysql to /var/lib/mysql, ./data/config to /var/www/config, and ./data/log to /var/log/ampache. For native Apache, the equivalent ownership rule is that www-data can write the Ampache configuration tree while the library remains readable.

Best Value
Sale
Under Desk Cable Management Tray No Drill, Metal Mesh Cable Management Under Desk with Clamp Mount, 2 Hole Cable Tray with Wire Management and Cord Organizer for Home Office Standing Desk
  • 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
  • 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
  • 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
  • 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
  • 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.

Connect mobile, desktop, and home clients

Ampache exposes its own API and a Subsonic-compatible API. The official project lists native clients for Android, iOS, Linux, Windows, and macOS, plus localplay integrations for MPD, VLC, and Kodi. Client support changes over time, so check the current client documentation for the API variant and authentication method it expects.

The project also documents an opt-in Jellyfin-compatible API. Clients including Finamp, Symfonium, and gelly can use that interface when it is enabled. Treat this as a compatibility option rather than a guarantee that every Jellyfin client feature works against every Ampache release.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

For any client, enter the public HTTPS hostname, the account name and password, and the API type requested by the client. If login succeeds but tracks return 404, fix server rewriting before changing client settings. If the client sees no library, verify that the catalog scan completed and that the account has permission to browse it.

Troubleshoot the failures that matter most

Symptom Likely cause What to check
Every stream, Subsonic call, or REST request returns 404 Rewrite rules are disabled or not allowed. Enable mod_rewrite, set AllowOverride All, preserve the shipped rules, and reload Apache. For nginx, compare the location rules with the current official example.
Login page works but links switch to HTTP A reverse proxy is not forwarding the HTTPS scheme. Set Ampache’s local_web_path and force_ssl; add nginx’s fastcgi_param HTTPS on; when TLS terminates upstream.
Container starts, then settings vanish after recreation Configuration or database paths are not persistent. Verify the four bind mounts and inspect them after docker compose down and up -d.
Albums do not appear The catalog path is wrong or the service user cannot read files. Use /media inside Docker, confirm native filesystem permissions as www-data, and run a catalog update.
New files are not detected promptly Monitoring behavior depends on the catalog name and scheduled scans. Use the documented music catalog name for directory monitoring, or wait for the hourly cron update used by other names.
Downloads or playback fail on modern Apache Apache’s CGI-like request handling needs the trust setting. Add SetEnv ap_trust_cgilike_cl 1 in the /play directory and retest after checking the error log.
Installer reports missing PHP features The selected PHP branch or extensions do not satisfy Ampache. Use PHP 8.5+ for Ampache 8 and install every extension listed by the installer or Composer requirements.

Backups, upgrades, and rollback

What to back up

  • The Ampache database, including users, playlists, ratings, and catalog metadata.
  • The complete configuration directory and any custom web-server files.
  • Container or native logs needed to diagnose a failed upgrade.
  • The media library, or the source backup that can restore it.
  • Your Compose file and the exact image tag, or the native Ampache release archive and package versions.

A database-only backup cannot restore the audio files, while a media-only backup loses accounts and playlists. Test that a backup can be restored to a separate directory or test container before relying on it.

Docker upgrade workflow

  1. Record the current image tag and take backups.
  2. Read the Ampache upgrade notes, especially when crossing a major version.
  3. Pull the new pinned tag with docker compose pull.
  4. Recreate the service with docker compose up -d.
  5. Check logs, open the web interface, run a stream, and test one API client.
  6. If the release is unsuitable, stop the service and recreate it with the previously recorded tag after restoring data if the upgrade changed the database schema.

Native upgrade workflow

Keep the old release directory until the new one passes the installer checks and playback tests. Apply database migrations exactly as documented for the target release, preserve the configuration, and retain a tested database dump. A Git checkout additionally requires Composer and npm build steps; a release ZIP does not.

Which deployment should you choose?

Choose Docker Compose if you want the quickest repeatable installation, clean separation from other host packages, and an easy image-based rollback. Choose native Apache/MariaDB/PHP if the VPS already has a managed web stack, you need detailed control over PHP-FPM or virtual hosts, or several sites must share one host-level database and web server.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Whichever route you choose, the non-negotiable pieces are the supported PHP and database versions, persistent configuration and database storage, a readable catalog path, functioning rewrite rules, and an HTTPS public URL whose proxy settings match Ampache. Get those right before troubleshooting individual clients.

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.