Yamtrack
Overview
This guide covers the deployment and configuration of Yamtrack on Ubuntu 24.04 on Azure, using the SecureAnyCloud Azure Marketplace image. Yamtrack is an open source app that keeps one personal library of everything you watch, play and read.
Track movies, TV shows, anime, manga, video games and books together. Record where you are up to with per-item progress and episode tracking, rate what you have finished, and see it all organised by status such as in progress, planning and completed. Yamtrack fetches rich metadata and artwork automatically for the things you add, and a Celery background worker keeps that information in sync. You can also add fully custom entries for niche items that no catalogue covers.
The SecureAnyCloud image ships the free and open source, AGPL-3.0 licensed Yamtrack. It runs the officially supported way, as the upstream all-in-one container (its supervisord runs nginx in front of gunicorn, a Celery worker and Celery beat), pinned to a fixed release and captured into the VM. PostgreSQL and Redis back the app, so your instance starts in seconds.
Yamtrack's upstream application secret is a well-known fixed value, and open registration is on by default. This image therefore ships with no known credential, and the instance is not left world open. A unique application secret and database password are generated for each VM on first boot, before the app is reachable. A per-instance admin account with a random password is seeded once the app is healthy, and open self sign-up is disabled.
Yamtrack is a trademark of its respective owner. SecureAnyCloud produces this image, which is not affiliated with, endorsed by or sponsored by the Yamtrack project. It ships the free and open source AGPL-3.0 licensed self-hosted software, unmodified.
What you get:
- Yamtrack 0.25.3 (the AGPL-3.0 licensed all-in-one container: nginx plus gunicorn Django, a Celery worker and Celery beat under supervisord), pinned to a fixed release tag
- PostgreSQL 16 (
postgres:16-alpine) as the application database and Redis 8 (redis:8-alpine) as the Celery broker and cache, both bound to the internal Docker network only - The app published on port
80, with no published host ports for PostgreSQL and Redis, which are never bound to the public interface yamtrack.serviceandyamtrack-firstboot.serviceas systemd units, enabled and active on boot- A unique application secret, a unique database password and a per-instance admin account with a random password, generated per VM on first boot and never baked into the image
- No default login, no shipped secret, open self sign-up disabled and an empty database on first boot
- Ubuntu 24.04 LTS base with the latest security patches applied at build time
- Azure Linux Agent for seamless cloud integration and SSH key injection
- 24/7 SecureAnyCloud support with a guaranteed 24-hour response SLA
Prerequisites
- An active Azure subscription, an SSH public key, and a VNet with a subnet in the target region
- A subscription to the Yamtrack listing on Azure Marketplace
Recommended virtual machine size: Standard_B2s (2 vCPU, 4 GB RAM) is a sensible starting point for a personal library. For many concurrent users or large imports, use Standard_D2s_v5 or larger.
Configure the network security group (NSG) to allow inbound 22/tcp from your management network and 80/tcp for the web app from the networks that use it.
Deploy from the Azure Portal
Sign in to the Azure Portal, choose Create a resource, search the Marketplace for Yamtrack by SecureAnyCloud, and select Create.
On the Basics tab, pick your subscription, resource group, region and size. Under Administrator account, choose SSH public key and paste your key. Under Inbound port rules, allow SSH (22) and HTTP (80).
Select Review + create, then Create.
Deploy from the Azure CLI
RG="yamtrack-prod"; LOCATION="eastus"; VM_NAME="yamtrack-01" IMAGE_URN="sac1647283583153:yamtrack-ubuntu-24-04:default:latest" SSH_KEY="$(cat ~/.ssh/id_rsa.pub)" az group create --name "$RG" --location "$LOCATION" az network vnet create -g "$RG" --name yt-vnet --address-prefix 10.100.0.0/16 --subnet-name yt-subnet --subnet-prefix 10.100.1.0/24 az network nsg create -g "$RG" --name yt-nsg az network nsg rule create -g "$RG" --nsg-name yt-nsg --name allow-ssh --priority 100 \
--source-address-prefixes "<your-mgmt-cidr>" --destination-port-ranges 22 --access Allow --protocol Tcp az network nsg rule create -g "$RG" --nsg-name yt-nsg --name allow-http --priority 110 \
--destination-port-ranges 80 --access Allow --protocol Tcp
# Accept the Marketplace terms once per subscription (required before the first CLI deploy)
az vm image terms accept --urn sac1647283583153:yamtrack-ubuntu-24-04:default:latest
az vm create -g "$RG" --name "$VM_NAME" --image "$IMAGE_URN" \
--size Standard_B2s --storage-sku StandardSSD_LRS \
--admin-username azureuser --ssh-key-values "$SSH_KEY" \
--vnet-name yt-vnet --subnet yt-subnet --nsg yt-nsg --public-ip-sku StandardConnect to your VM
ssh azureuser@<vm-ip>Confirm the services are running
Yamtrack runs as one all-in-one container under yamtrack.service, alongside a PostgreSQL container and a Redis container. The app's bundled nginx is published on host port 80. PostgreSQL and Redis have no published host ports and are reachable only on the internal Docker network.
Confirm that the services are active and list the containers:
sudo systemctl is-active docker yamtrack-firstboot yamtrack
sudo docker compose -f /var/lib/yamtrack/docker-compose.yml psThe services report active and the three containers are running. The app container reports healthy and publishes only 0.0.0.0:80->8000/tcp.
Inside the app container, supervisord runs nginx in front of gunicorn (the Django app), a Celery worker and Celery beat. Celery handles the background metadata sync.
Read the per-instance credentials
First boot generated a unique application secret and database password for this VM, before the app was reachable. Once the app was healthy, it also seeded a per-instance admin account with a random password and wrote the details to a root-only file. Read the file:
sudo cat /root/yamtrack-credentials.txtThe file (mode 0600 root:root) holds the admin username, email and DJANGO_ADMIN_PASSWORD, which together form the account you sign in to the web app with, and the app url.
None of these values ship in the image. Every value is unique to this VM, so no two instances share a credential and there is no default login to change.
Verify the security model
The health endpoint is reachable without authentication, but every application page requires a signed-in session, and open self sign-up is disabled.
Run the following checks. They confirm that the health endpoint answers, that the home page redirects an anonymous visitor to the login page, and that an unauthenticated attempt to add an item is rejected. They also confirm that the per-instance admin credential authenticates a real session and reads back the library:
B=http://localhost curl -s -o /dev/null -w 'health (no auth): %{http_code}\n' $B/health/ curl -s -o /dev/null -w 'home / (no auth): %{http_code}\n' $B/ curl -s -o /dev/null -w 'POST /create (no auth): %{http_code}\n' -X POST $B/create
PASS=$(sudo grep '^DJANGO_ADMIN_PASSWORD=' /root/yamtrack-credentials.txt | cut -d= -f2-)
J=$(mktemp)
curl -s -c $J -b $J -o /dev/null $B/accounts/login/
TOK=$(awk '$6=="csrftoken"{print $7}' $J | tail -1)
curl -s -c $J -b $J -o /dev/null -w 'login (admin creds): %{http_code}\n' \
-H "Referer: $B/accounts/login/" -H "Origin: $B" \
--data-urlencode "login=admin" --data-urlencode "password=$PASS" \
--data-urlencode "csrfmiddlewaretoken=$TOK" $B/accounts/login/
curl -s -c $J -b $J -o /dev/null -w 'GET /admin/movie (session): %{http_code}\n' $B/admin/movie rm -f $JThe results are:
- The health endpoint returns
200. - The home page returns
302, which redirects an anonymous visitor to the login page. - The unauthenticated add is rejected with a non-success code.
- The login with the per-instance admin returns
302, which indicates success. - The authenticated library page then returns
200.
This is the security model. Django's login-required middleware gates every page, there is no open registration, and only the per-instance admin can read or write the library.
Open the web app and sign in
Browse to http://<vm-ip>/ to reach the Yamtrack web app. Sign in with the username admin and the DJANGO_ADMIN_PASSWORD from Step 5.
Add something to your library
Yamtrack fetches rich metadata and artwork for the titles you add. Use the search box at the top to look up a movie, show, game or book. Add it to your library with a status such as Completed, In progress or Planning, a score and your progress.
For a niche item that no catalogue covers, select Create Custom in the sidebar. In the create form, choose the media type and enter the details to add a fully custom entry. A custom entry needs no external metadata provider.
Browse your tracked library
Each media type has its own page in the sidebar: Movies, TV Shows, Anime, Manga, Games, Books and more. Open one to see everything you are tracking of that type as cards that show the title, your score and a status indicator. You can filter or sort by rating, status or title.
This is the heart of Yamtrack: one private, organised library of everything you watch, play and read.
See what you are watching now on the home dashboard
The Home dashboard shows what you have in progress and what you are planning next, grouped by media type. Quick progress controls let you bump an episode or a chapter without opening the item.
It is the at-a-glance view of your active backlog.
Enable sign up or add more users
Open self sign-up is disabled on this image (REGISTRATION=False), so the instance is not world open and nobody who reaches the URL can create an account. To let people register their own accounts, edit the environment file, set REGISTRATION=True, and restart the app:
sudo sed -i 's/^REGISTRATION=.*/REGISTRATION=True/' /var/lib/yamtrack/.env
sudo systemctl restart yamtrack.serviceAlternatively, keep registration closed and add users yourself from the Django admin at http://<vm-ip>/admin/. The admin backend is enabled on this image. Sign in as the admin user.
Confirm the pinned release
The stack is pinned to a fixed Yamtrack release and fixed PostgreSQL and Redis images, so your instance never upgrades silently. Confirm the image tags:
sudo docker compose -f /var/lib/yamtrack/docker-compose.yml imagesAdd metadata provider API keys (optional)
Yamtrack works out of the box with shared default metadata keys. For heavy use, or to add games and books reliably, add your own provider keys to /var/lib/yamtrack/.env and restart the app. Common keys are TMDB_API (movies and TV), MAL_API (anime and manga), and IGDB_ID plus IGDB_SECRET (games):
sudo tee -a /var/lib/yamtrack/.env >/dev/null <<'EOF' TMDB_API=<your-token> MAL_API=<your-token> EOF
sudo systemctl restart yamtrack.serviceCustom entries created with Create Custom never need a provider key, so you can track anything even when no keys are set.
Server components
- Application: Yamtrack 0.25.3 all-in-one container (nginx, gunicorn Django, Celery worker and Celery beat under supervisord), pinned
- Front door: the container's nginx on :8000, published on host :80
- Application database: PostgreSQL 16 (postgres:16-alpine), internal Docker network only
- Cache and task broker: Redis 8 (redis:8-alpine), maxmemory capped at 256mb, internal Docker network only
- Orchestration: Docker Compose under yamtrack.service
- Application secret: per instance, generated on first boot into /var/lib/yamtrack/.env
- Admin account: per-instance random password, seeded on first boot into /root/yamtrack-credentials.txt
- Registration: open self sign-up disabled (REGISTRATION=False)
- Operating system: Ubuntu 24.04 LTS (patched at build)
- License: AGPL-3.0 (Yamtrack)
Managing the service
sudo systemctl status yamtrack --no-pager | head -12 sudo docker compose -f /var/lib/yamtrack/docker-compose.yml logs --tail 40 yamtrackRestart the app with sudo systemctl restart yamtrack.service. Follow the logs live with sudo docker compose -f /var/lib/yamtrack/docker-compose.yml logs -f yamtrack. View the configuration in /var/lib/yamtrack/.env.
After you change the environment file, restart the service to apply the change.
Use your own domain and HTTPS (production)
The image serves the web app over plain HTTP on port 80, which is convenient behind a load balancer or private network. For production, terminate TLS in front of the VM so that credentials travel encrypted:
- Front the VM with Azure Application Gateway, a load balancer with a managed certificate, or a CDN, and forward to the app on port
80. - If you serve the app from a custom domain, add that origin to
CSRFin/var/lib/yamtrack/.env(for exampleCSRF=https://<your-domain>) so that login and forms work from that address. Then restart the app. The app reads its reachable address at first boot, so use a stable public IP or set the address before first boot.
Security recommendations
- Restrict the NSG. Allow TCP 80 (and 22 for admin) only from the networks that use the app.
- Terminate TLS in front of the app (Step 16) so that the admin password and session cookies are encrypted in transit.
- Rotate the seeded admin password. Sign in and change it, or set a new password from the Django admin.
- Keep registration closed. Open self sign-up is disabled by default. Leave it that way and add members yourself, unless you specifically want open registration.
- Keep the datastores private. PostgreSQL and Redis are bound to the internal Docker network only. Never publish their ports.
- Keep the OS patched. Unattended security upgrades remain enabled on the running VM.
Support and Licensing
Yamtrack is distributed under the GNU Affero General Public License v3.0 (AGPL-3.0). This SecureAnyCloud image bundles the unmodified official open source release.
SecureAnyCloud provides the packaging, the PostgreSQL and Redis backing services, the per-instance secret, database password and admin generation, the paired deploy guide, and 24/7 support with a guaranteed 24-hour response SLA.
Yamtrack is an independent open source project. This image is not affiliated with or endorsed by it.
Deploy on Azure
Launch Yamtrack on Ubuntu 24.04 LTS by SecureAnyCloud from the Azure Marketplace and follow this guide to a working personal media tracker for movies, TV, anime, manga, games and books in minutes.
Deploy on Azure
Launch Yamtrack on Ubuntu 24.04 LTS on Azure with 24/7 support from SecureAnyCloud.
View this image
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com
Overview
This guide covers the deployment and configuration of Yamtrack on AWS, using the SecureAnyCloud AWS Marketplace AMI. Yamtrack is an open source app that keeps one personal library of everything you watch, play and read.
Track movies, TV shows, anime, manga, video games and books together. Record where you are up to with per-item progress and episode tracking, rate what you have finished, and see it all organised by status such as in progress, planning and completed. Yamtrack fetches rich metadata and artwork automatically for the things you add, and a Celery background worker keeps that information in sync. You can also add fully custom entries for niche items that no catalogue covers.
The SecureAnyCloud image ships the free and open source, AGPL-3.0 licensed Yamtrack. It runs the officially supported way, as the upstream all-in-one container (its supervisord runs nginx in front of gunicorn, a Celery worker and Celery beat), pinned to a fixed release and captured into the AMI. PostgreSQL and Redis back the app, so your instance starts in seconds.
Yamtrack's upstream application secret is a well-known fixed value, and open registration is on by default. This image therefore ships with no known credential, and the instance is not left world open. A unique application secret and database password are generated for each instance on first boot, before the app is reachable. A per-instance admin account with a random password is seeded once the app is healthy, and open self sign-up is disabled.
Yamtrack is a trademark of its respective owner. SecureAnyCloud produces this image, which is not affiliated with, endorsed by or sponsored by the Yamtrack project. It ships the free and open source AGPL-3.0 licensed self-hosted software, unmodified.
What you get:
- Yamtrack 0.25.3 (the AGPL-3.0 licensed all-in-one container: nginx plus gunicorn Django, a Celery worker and Celery beat under supervisord), pinned to a fixed release tag
- PostgreSQL 16 (
postgres:16-alpine) as the application database and Redis 8 (redis:8-alpine) as the Celery broker and cache, both bound to the internal Docker network only - The app published on port
80, with no published host ports for PostgreSQL and Redis, which are never bound to the public interface - A dedicated gp3 data volume mounted at
/var/lib/docker(the Docker data root), so the container images and database live on their own independently resizable disk yamtrack.serviceandyamtrack-firstboot.serviceas systemd units, enabled and active on boot- A unique application secret, a unique database password and a per-instance admin account with a random password, generated per instance on first boot and never baked into the image
- No default login, no shipped secret, open self sign-up disabled and an empty database on first boot
- A fully patched Ubuntu 24.04 LTS base with unattended security upgrades
- 24/7 SecureAnyCloud support with a guaranteed 24-hour response SLA
Connecting to your instance
Connect over SSH on port 22 as the default login user for the operating system variant you launched:
- Ubuntu 24.04: SSH login user ubuntu
ssh ubuntu@<vm-ip>Prerequisites
- An AWS account subscribed to the Yamtrack listing on AWS Marketplace
- An EC2 key pair in the target region and a VPC subnet
- A security group that allows
22/tcpfrom your management network and80/tcpfor the web app from the networks that use it
Recommended instance type: m5.large (2 vCPU, 8 GB RAM) is a sensible starting point for a personal library. For many concurrent users or large imports, use a larger instance.
Launch from the AWS Marketplace console
Sign in to the AWS Management Console, open AWS Marketplace, and find the Yamtrack listing by SecureAnyCloud. Choose Continue to Subscribe, then Continue to Configuration and Continue to Launch.
Pick your region, instance type (m5.large), VPC subnet and key pair. Choose a security group that allows SSH (22) and HTTP (80), then select Launch.
Launch from the AWS CLI
AMI_ID="ami-xxxxxxxxxxxxxxxxx"
# the Yamtrack AMI id for your region (from the listing)
aws ec2 run-instances \
--image-id "$AMI_ID" \
--instance-type m5.large \
--key-name my-keypair \
--security-group-ids sg-xxxxxxxx \
--subnet-id subnet-xxxxxxxx \
--associate-public-ip-address \
--block-device-mappings '[{"DeviceName":"/dev/sda1","Ebs":{"VolumeType":"gp3","VolumeSize":16}}]' \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=yamtrack-01}]'Connect to your instance
ssh ubuntu@<vm-ip>Confirm the services are running
Yamtrack runs as one all-in-one container under yamtrack.service, alongside a PostgreSQL container and a Redis container. The app's bundled nginx is published on host port 80. PostgreSQL and Redis have no published host ports and are reachable only on the internal Docker network.
Confirm that the services are active and list the containers:
sudo systemctl is-active docker yamtrack-firstboot yamtrack
sudo docker compose -f /var/lib/yamtrack/docker-compose.yml psThe services report active and the three containers are running. The app container reports healthy and publishes only 0.0.0.0:80->8000/tcp.
Inside the app container, supervisord runs nginx in front of gunicorn (the Django app), a Celery worker and Celery beat. Celery handles the background metadata sync.
Read the per-instance credentials
First boot generated a unique application secret and database password for this instance, before the app was reachable. Once the app was healthy, it also seeded a per-instance admin account with a random password and wrote the details to a root-only file. Read the file:
sudo cat /root/yamtrack-credentials.txtThe file (mode 0600 root:root) holds the admin username, email and DJANGO_ADMIN_PASSWORD, which together form the account you sign in to the web app with, and the app url.
None of these values ship in the image. Every value is unique to this instance, so no two instances share a credential and there is no default login to change.
Verify the security model
The health endpoint is reachable without authentication, but every application page requires a signed-in session, and open self sign-up is disabled.
Run the following checks. They confirm that the health endpoint answers, that the home page redirects an anonymous visitor to the login page, and that an unauthenticated attempt to add an item is rejected. They also confirm that the per-instance admin credential authenticates a real session and reads back the library:
B=http://localhost curl -s -o /dev/null -w 'health (no auth): %{http_code}\n' $B/health/ curl -s -o /dev/null -w 'home / (no auth): %{http_code}\n' $B/ curl -s -o /dev/null -w 'POST /create (no auth): %{http_code}\n' -X POST $B/create
PASS=$(sudo grep '^DJANGO_ADMIN_PASSWORD=' /root/yamtrack-credentials.txt | cut -d= -f2-)
J=$(mktemp)
curl -s -c $J -b $J -o /dev/null $B/accounts/login/
TOK=$(awk '$6=="csrftoken"{print $7}' $J | tail -1)
curl -s -c $J -b $J -o /dev/null -w 'login (admin creds): %{http_code}\n' \
-H "Referer: $B/accounts/login/" -H "Origin: $B" \
--data-urlencode "login=admin" --data-urlencode "password=$PASS" \
--data-urlencode "csrfmiddlewaretoken=$TOK" $B/accounts/login/
curl -s -c $J -b $J -o /dev/null -w 'GET /admin/movie (session): %{http_code}\n' $B/admin/movie rm -f $JThe results are:
- The health endpoint returns
200. - The home page returns
302, which redirects an anonymous visitor to the login page. - The unauthenticated add is rejected with a non-success code.
- The login with the per-instance admin returns
302, which indicates success. - The authenticated library page then returns
200.
This is the security model. Django's login-required middleware gates every page, there is no open registration, and only the per-instance admin can read or write the library.
Open the web app and sign in
Browse to http://<vm-ip>/ to reach the Yamtrack web app. Sign in with the username admin and the DJANGO_ADMIN_PASSWORD from Step 5.
Add something to your library
Yamtrack fetches rich metadata and artwork for the titles you add. Use the search box at the top to look up a movie, show, game or book, and open its detail page. The detail page shows the poster and description, and the Add to tracker control adds the title to your library with a status such as Completed, In progress or Planning, a score and your progress.
For a niche item that no catalogue covers, select Create Custom in the sidebar to add a fully custom entry. A custom entry needs no external metadata provider.
Browse your tracked library
Each media type has its own page in the sidebar: Movies, TV Shows, Anime, Manga, Games, Books and more. Open one to see everything you are tracking of that type as cards that show the title, your score and a status indicator. You can filter or sort by rating, status or title.
This is the heart of Yamtrack: one private, organised library of everything you watch, play and read.
See your statistics
The Statistics page summarises your media consumption habits: completed items, average rating, your most active day and current streak, plus an activity history heatmap.
It is the at-a-glance view of everything you have tracked.
Enable sign up or add more users
Open self sign-up is disabled on this image (REGISTRATION=False), so the instance is not world open and nobody who reaches the URL can create an account. To let people register their own accounts, edit the environment file, set REGISTRATION=True, and restart the app:
sudo sed -i 's/^REGISTRATION=.*/REGISTRATION=True/' /var/lib/yamtrack/.env
sudo systemctl restart yamtrack.serviceAlternatively, keep registration closed and add users yourself from the Django admin at http://<vm-ip>/admin/. The admin backend is enabled on this image. Sign in as the admin user.
Confirm the pinned release
The stack is pinned to a fixed Yamtrack release and fixed PostgreSQL and Redis images, so your instance never upgrades silently. Confirm the image tags:
sudo docker compose -f /var/lib/yamtrack/docker-compose.yml imagesAdd metadata provider API keys (optional)
Yamtrack works out of the box with shared default metadata keys. For heavy use, or to add games and books reliably, add your own provider keys to /var/lib/yamtrack/.env and restart the app. Common keys are TMDB_API (movies and TV), MAL_API (anime and manga), and IGDB_ID plus IGDB_SECRET (games):
sudo tee -a /var/lib/yamtrack/.env >/dev/null <<'EOF' TMDB_API=<your-token> MAL_API=<your-token> EOF
sudo systemctl restart yamtrack.serviceCustom entries created with Create Custom never need a provider key, so you can track anything even when no keys are set.
Server components
- Application: Yamtrack 0.25.3 all-in-one container (nginx, gunicorn Django, Celery worker and Celery beat under supervisord), pinned
- Front door: the container's nginx on :8000, published on host :80
- Application database: PostgreSQL 16 (postgres:16-alpine), internal Docker network only
- Cache and task broker: Redis 8 (redis:8-alpine), maxmemory capped at 256mb, internal Docker network only
- Orchestration: Docker Compose under yamtrack.service, with the data root on a dedicated gp3 volume at /var/lib/docker
- Application secret: per instance, generated on first boot into /var/lib/yamtrack/.env
- Admin account: per-instance random password, seeded on first boot into /root/yamtrack-credentials.txt
- Registration: open self sign-up disabled (REGISTRATION=False)
- Operating system: Ubuntu 24.04 LTS (patched at build)
- License: AGPL-3.0 (Yamtrack)
Managing the service
sudo systemctl status yamtrack --no-pager | head -12 sudo docker compose -f /var/lib/yamtrack/docker-compose.yml logs --tail 40 yamtrackRestart the app with sudo systemctl restart yamtrack.service. Follow the logs live with sudo docker compose -f /var/lib/yamtrack/docker-compose.yml logs -f yamtrack. View the configuration in /var/lib/yamtrack/.env.
After you change the environment file, restart the service to apply the change.
Use your own domain and HTTPS (production)
The image serves the web app over plain HTTP on port 80, which is convenient behind a load balancer or private network. For production, terminate TLS in front of the instance so that credentials travel encrypted:
- Front the instance with an Application Load Balancer with an ACM certificate, or a CloudFront distribution, and forward to the app on port
80. - If you serve the app from a custom domain, add that origin to
CSRFin/var/lib/yamtrack/.env(for exampleCSRF=https://<your-domain>) so that login and forms work from that address. Then restart the app. The app reads its reachable address at first boot, so use a stable Elastic IP or set the address before first boot.
Security recommendations
- Restrict the security group. Allow TCP 80 (and 22 for admin) only from the networks that use the app.
- Terminate TLS in front of the app (Step 16) so that the admin password and session cookies are encrypted in transit.
- Rotate the seeded admin password. Sign in and change it, or set a new password from the Django admin.
- Keep registration closed. Open self sign-up is disabled by default. Leave it that way and add members yourself, unless you specifically want open registration.
- Keep the datastores private. PostgreSQL and Redis are bound to the internal Docker network only. Never publish their ports.
- Keep the OS patched. Unattended security upgrades remain enabled on the running instance.
Support and Licensing
Yamtrack is distributed under the GNU Affero General Public License v3.0 (AGPL-3.0). This SecureAnyCloud image bundles the unmodified official open source release.
SecureAnyCloud provides the packaging, the PostgreSQL and Redis backing services, the per-instance secret, database password and admin generation, the paired deploy guide, and 24/7 support with a guaranteed 24-hour response SLA.
Yamtrack is an independent open source project. This image is not affiliated with or endorsed by it.
Deploy on AWS
Launch Yamtrack from AWS Marketplace and follow this guide to a working personal media tracker for movies, TV, anime, manga, games and books in minutes.
Deploy on AWS
Launch Yamtrack on AWS with 24/7 support from SecureAnyCloud.
View on Marketplace
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com