If you’re self-hosting Nextcloud using Docker, integrating Redis as a caching and file locking service is a must for better speed and reliability. Portainer makes managing Docker super easy, especially with its user-friendly “Stacks” feature. In this post, you’ll learn step by step how to:
- Deploy Redis using Portainer Stacks
- Connect the Redis container to the network used by your Nextcloud instance (for simple, secure communication)
- Update your Nextcloud config to use Redis
Let’s get started!
Prerequisites
- Docker & Docker Compose installed and running
- Portainer up and accessible (
http://your-server:9000
) - A Nextcloud stack/container already running on Docker
- Portainer has permissions to manage your Docker host
Step 1: Identify (or Create) the Nextcloud Docker Network
First, Nextcloud and Redis need to be on the same Docker network so they can talk.
Find the Network Name
If you deployed Nextcloud as a Portainer stack, you likely have a custom network. To check:
- In Portainer, go to Containers and find your Nextcloud container.
- Click on it and look for the Network section.
The network name may look like nextcloud_default
(if your stack is named ‘nextcloud’). Take note of it!
If not found, you can always create a network manually:
docker network create nextcloud-net
Step 2: Create a Redis Stack in Portainer
- In Portainer, go to Stacks > Add Stack
- Name your stack, e.g.,
redis
- Use the following example
docker-compose
file:
version: '3.7'
services:
redis:
image: redis:alpine
container_name: redis
restart: unless-stopped
networks:
- nextcloud_network
# For persistent storage (optional):
# volumes:
# - redis-data:/data
# Define external network (replace with your actual network name)
networks:
nextcloud_network:
external: true
# Uncomment for persistent volume (optional)
# volumes:
# redis-data:
Important:
Change nextcloud_network
to your Nextcloud network name (from Step 1), e.g., nextcloud_default
.
- Click Deploy the stack
Step 3: Confirm Redis is Running & Networked
In Containers, check that the redis
container is running and attached to the correct network.
You should see both nextcloud
and redis
containers under the same network.
Step 4: Add Redis Configuration to Nextcloud
SSH into your Nextcloud server or use Portainer’s console and add the following to your config/config.php
for Nextcloud (usually found in the nextcloud/config/
directory):
'memcache.local' => '\\OC\\Memcache\\APCu',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' => [
'host' => 'redis', // the service name from your stack
'port' => 6379,
// 'password' => 'yourpassword', // If you set one
'timeout' => 0.0,
],
- If you gave your redis container a different name, adjust
'host' => 'redis'
accordingly. - If you set a redis password (not done in this example, but recommended for production!), include the
'password'
line.
Step 5: Restart Nextcloud Container
You can do this in Portainer via the container menu (Actions > Restart), or with:
docker restart <nextcloud-container-name>
Troubleshooting
- If Nextcloud can’t connect to Redis, double-check:
- Both containers are on the same Docker network
host
matches the Redis container’s service/container name (notlocalhost
or127.0.0.1
)- No firewall is blocking Docker internal traffic
- Use Portainer’s logs for debugging (
redis
andnextcloud
containers)
Conclusion
With just a few edits and a quick stack deployment in Portainer, you can power up your Nextcloud setup with Redis for better performance, safer file locking, and future-proof scaling. Let Portainer do the heavy lifting—no need to wrangle the command line!
Have questions or run into issues? Drop them below or check the Nextcloud docs for more tips.
Happy self-hosting!
Please let me know if you’d like examples for persistent volumes, securing Redis, or extra performance tuning!
Leave a Reply