Jackett is a powerful, self-hosted application designed to act as a bridge between torrent indexers and your favorite download clients, such as qBittorrent or Transmission. By providing a unified interface to manage multiple indexers, Jackett eliminates the hassle of manually configuring each one individually. Its open-source nature, extensive customization options, and control over your data make it an excellent choice for developers and system administrators. This guide will walk you through installing, configuring, securing, and utilizing Jackett to its fullest potential.
Installing Jackett
π¦ Docker/Docker Compose Setup
Docker is one of the most efficient methods to deploy Jackett. Below is a docker-compose.yml
file tailored for Jackett, including port mappings and volume configurations.
version: '3.8'
services:
jackett:
image: lscr.io/linuxserver/jackett:latest
container_name: jackett
ports:
- "9117:9117" # Expose the default Jackett port
volumes:
- ./config:/config # Persistent storage for Jackett configuration
- ./downloads:/downloads # Optional: path to downloads directory
environment:
- PUID=1000 # Your user ID for file permissions
- PGID=1000 # Your group ID for file permissions
- TZ=Etc/UTC # Set your timezone
restart: unless-stopped
Run the following commands to deploy Jackett:
mkdir jackett && cd jackett
nano docker-compose.yml # Paste the above configuration
docker-compose up -d # Start the Jackett container
π Manual Installation
For users preferring a manual setup on a Linux server, follow these steps:
- Install dependencies:
sudo apt update && sudo apt install -y wget tar
- Download and extract the latest Jackett release:
wget https://github.com/Jackett/Jackett/releases/latest/download/Jackett.Binaries.Linux.tar.gz
tar -xvf Jackett.Binaries.Linux.tar.gz
sudo mv Jackett /opt/
sudo chown -R $USER:$USER /opt/Jackett
- Create a systemd service file for Jackett:
sudo nano /etc/systemd/system/jackett.service
Add the following:
[Unit]
Description=Jackett Service
After=network.target
[Service]
ExecStart=/opt/Jackett/jackett --NoUpdates
WorkingDirectory=/opt/Jackett
Restart=on-failure
User=<your_username>
Group=<your_username>
[Install]
WantedBy=multi-user.target
- Enable and start Jackett:
sudo systemctl enable jackett
sudo systemctl start jackett
Access Jackett via http://<server-ip>:9117
.
Configuring Nginx as a Reverse Proxy
π Nginx Configuration
Set up Nginx to route traffic to Jackett for better accessibility. Create an Nginx server block:
sudo nano /etc/nginx/sites-available/jackett.conf
Add the following configuration:
server {
listen 80;
server_name jackett.yourdomain.com;
location / {
proxy_pass http://localhost:9117;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Enable the server block and reload Nginx:
sudo ln -s /etc/nginx/sites-available/jackett.conf /etc/nginx/sites-enabled/
sudo nginx -t # Test configuration
sudo systemctl reload nginx
π SSL/TLS Setup
Secure your reverse proxy with Let's Encrypt:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d jackett.yourdomain.com
Automate certificate renewal:
sudo systemctl enable certbot.timer
sudo systemctl start certbot.timer
π οΈ Testing and Reloading Nginx
Ensure everything is working by visiting https://jackett.yourdomain.com
. Reload Nginx after any configuration changes:
sudo systemctl reload nginx
Logging and Debugging Jackett
ποΈ Enabling Debug Logs
To enable debug logs, modify Jackett's configuration file. Open config/ServerConfig.json
and set "LogLevel"
to "Debug"
.
π Viewing Logs
For Docker-based installations:
docker logs jackett
For manual installations:
tail -f /opt/Jackett/Logs/log.txt
π οΈ Troubleshooting Common Issues
- If Jackett doesnβt start, verify port availability using:
sudo netstat -tuln | grep 9117
- Check permissions on the configuration directory:
ls -la /opt/Jackett
π€ Exporting Logs
To send logs to an external system like ELK Stack, configure filebeat or similar tools to monitor Logs/log.txt
.
Backup and Restore
ποΈ File-Based Backups
Backup configuration and data files:
tar -czvf jackett-backup.tar.gz /path/to/config
Restore with:
tar -xzvf jackett-backup.tar.gz -C /
π Automated Backup Scripts
Set up a cron job for regular backups:
crontab -e
Add:
0 2 * * * tar -czvf /path/to/backups/jackett-$(date +\%F).tar.gz /path/to/config
Updating and Upgrading Jackett
β¬οΈ Updating Docker Images
Update to the latest Jackett version:
docker-compose pull
docker-compose up -d
π οΈ Manual Updates
Replace the old binaries:
wget https://github.com/Jackett/Jackett/releases/latest/download/Jackett.Binaries.Linux.tar.gz
tar -xvf Jackett.Binaries.Linux.tar.gz
sudo mv Jackett /opt/
sudo systemctl restart jackett
π Checking for Updates
Check Jackett's web interface for update notifications or monitor GitHub for new releases.
Leveraging Jackettβs Unique Features
π§ Enabling APIs
Activate Jackettβs API by obtaining an API key from the web interface under Settings. Use the API for automated queries. For example, using curl
:
curl "http://localhost:9117/api/v2.0/indexers/all/results?apikey=<your_api_key>&Query=ubuntu"
π Advanced Configurations
You can customize Jackettβs indexers in the web UI. For multi-user environments, configure separate profiles using different API keys.
Wrapping Up
This guide has equipped you with the practical knowledge to deploy, configure, and manage Jackett effectively. From Docker-based installation to advanced API usage, Jackett empowers you to centralize and automate your torrent indexer management. Start implementing these steps today and experience the full potential of self-hosting with Jackett!