#service #server #config

bin+lib mural-server

Server software for the mural wallpaper service

4 stable releases

Uses new Rust 2024

new 1.2.1 Mar 24, 2025
1.1.2 Mar 23, 2025

#573 in HTTP server

Download history 302/week @ 2025-03-19

302 downloads per month

MIT license

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

  1. Download the provided docker-compose.yml file:
wget https://raw.githubusercontent.com/mural-sync/mural-server/refs/heads/main/docker-compose.yml
  1. Create the config and config/wallpapers directories:
mkdir config
mkdir config/wallpapers
  1. Put your wallpapers into config/wallpapers. For this guide, we will assume that there are two wallpapers in the directory: wallpapers/picture1.png and wallpapers/picture2.jpg.

  2. Setup your pools in config/config.toml:

[pools]
default = [
  "picture1",
  "picture2",
]
  1. Start the server:
docker compose up -d

From Source

  1. Download the source code for mural-server:
git clone https://github.com/mural-sync/mural-server
cd mural-server
  1. Create the configuration and wallpaper directories in your configurations directory:
mkdir ~/.config/mural-server
mkdir ~/.config/mural-server/wallpapers
  1. 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 and wallpapers/picture2.jpg.

  2. Setup your pools in ~/.config/mural-server/config.toml:

[pools]
default = [
  "picture1",
  "picture2",
]
  1. 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