4 stable releases
Uses new Rust 2024
new 1.2.1 | Mar 24, 2025 |
---|---|
1.1.2 | Mar 23, 2025 |
#573 in HTTP server
302 downloads per month
23KB
401 lines
Mural Server
This is the server software for mural.
Mural is a program that allows you to synchronize a wallpaper slideshow across your devices. It supports having multiple different slideshows (called pools). For example, you might have a pool called "Games" for wallpapers related to games and a pool called "Landscapes" for wallpapers of beautiful landscapes.
Setup
Using Docker (recommended)
- Download the provided
docker-compose.yml
file:
wget https://raw.githubusercontent.com/mural-sync/mural-server/refs/heads/main/docker-compose.yml
- Create the
config
andconfig/wallpapers
directories:
mkdir config
mkdir config/wallpapers
-
Put your wallpapers into
config/wallpapers
. For this guide, we will assume that there are two wallpapers in the directory:wallpapers/picture1.png
andwallpapers/picture2.jpg
. -
Setup your pools in
config/config.toml
:
[pools]
default = [
"picture1",
"picture2",
]
- Start the server:
docker compose up -d
From Source
- Download the source code for
mural-server
:
git clone https://github.com/mural-sync/mural-server
cd mural-server
- Create the configuration and wallpaper directories in your configurations directory:
mkdir ~/.config/mural-server
mkdir ~/.config/mural-server/wallpapers
-
Put your wallpapers into
~/.config/mural-server/wallpapers
. For this guide, we will assume that there are two wallpapers in the directory:wallpapers/picture1.png
andwallpapers/picture2.jpg
. -
Setup your pools in
~/.config/mural-server/config.toml
:
[pools]
default = [
"picture1",
"picture2",
]
- Start the server:
RUST_LOG=info cargo run
Configuration
This is a full configuration file using all the default options (except the pools configuration; mural-server
does not setup any pools by default):
port = 46666 # the port to bind the server to
interval = 600 # how long each wallpaper should be shown (in seconds)
[pool]
foo = [
"picture1",
"picture2",
]
bar = [
"picture2",
"picture3",
]
Dependencies
~20–33MB
~554K SLoC