Estimated reading time: 10 minutes
Your wedding is one of the most important days of your life - full of emotions, surprises and unforgettable moments. But how do you collect all these special moments from family and friends in one place without getting lost in WhatsApp chats or passing USB sticks back and forth? The answer is: WeddingShare. You and your wedding guests can easily collect and share photos and videos!
For detailed instructions and an explanation of all configuration options, I recommend the YouTube video linked below. In this video, every single setting is explained in detail so that you receive comprehensive instructions for the exact setup. You can find any code from the video in this article so that you can use it directly without having to type it in.
This blog post and video is part of a series in which we create and set up our own home server. We start with the basics like an Ubuntu VM installation with Docker and then continue with the configuration of your own domain, security precautions and above all lots of cool and useful self-hosted services. Whether media servers like Plex or Jellyfin or document management like Paperless-NGX. Together we'll build the setup you want to see. We even tackle topics such as single sign-on (SSO) together.
What is WeddingShare? The features at a glance
WeddingShare is a free open-source app that allows you and your guests to easily share photos and videos from the wedding. Without registration, without advertising - but with lots of attention to detail.
The app is available on GitHub available and offers you the opportunity to host your own wedding gallery. You therefore retain full control over your data at all times.
Would you like to try out WeddingShare first without obligation? No problem! There is a public demo in which you can test all the functions:
🌐 https://demo.wedding-share.org/
WeddingShare is not just a simple upload platform for photos - the app is well thought-out, flexible and perfectly tailored for use at weddings. Here is an overview of the most important functions:
Multilingualism for international guests
No matter whether your guests speak German, English, French, Spanish, Turkish or Albanian - WeddingShare welcomes them in their language. The app is translated into many languages and automatically recognizes the user's preferred language. This means that all guests feel welcome and at home straight away.
Tip: You can even activate only certain languages - for example, if you only need German and English.
Flexible upload settings
As an admin, you have full control over what can be uploaded. You can specify exactly which file types are allowed - for example, only images (JPG, PNG) or videos (MP4, MOV). This not only protects against spam, but also ensures that the gallery is not flooded with unnecessary files.
You can also set whether users have to enter their name or can upload anonymously. This flexibility is particularly practical if you want to assign certain posts - or deliberately create an anonymous atmosphere.
Several galleries for different occasions
You can create as many galleries as you like - for the civil wedding, the free ceremony, the dinner or the stag party, for example. This keeps everything organized and guests can quickly find the right pictures.
Each gallery has its own upload link - so you can control who sees what and where it is uploaded.
Password protection for more privacy
To ensure that not everyone on the internet has access to your wedding photos, you can protect each gallery with a password. Only those who know the password can view or upload pictures. You decide how open or closed your digital wedding world should be.
Chic, responsive design
WeddingShare not only looks good, it also works on any device - smartphone, tablet or desktop. The interface is intuitive and tailored to wedding events. Your guests will find their way around immediately.
As a simple guest, you can also filter and sort the images and videos as you wish or group them by upload person, for example. Even a slideshow is conveniently integrated.
100 % ad-free and open source
WeddingShare is a project from the hearts of developers and is completely free to use. There are no ads, no hidden costs and no data collection. You can even customize the app yourself if you need something special.
How does the app work?
1. create your own gallery
You install WeddingShare on your server or web space. Alternatively, you can also ask an IT-savvy friend to help you. Find out more under Installation in this article. Then create a gallery for your wedding.
2. invite guests
There is a unique upload link for each gallery. You can share this with your guests - e.g. as a QR code on the tables, in the invitation or on a wedding website.
3. upload photos and videos
Guests can easily upload their photos and videos from their smartphone or laptop. No account, no app installation, no technical hurdles.
4. browse through memories together
You can browse through the content in a beautifully designed gallery, sort and filter it as required or save it for the wedding album. Your guests can also browse through and download the uploaded photos and videos - so everyone can relive the most beautiful moments and share them with others. No one is left out and the memories don't disappear into a private photo archive.
Your advantages at a glance
- Simple upload / download: Guests do not need an app or login, just a browser
- Data protection guaranteed: You host yourself - no cloud required
- Modern design: Clear, responsive and optimized for every device
- Open source: Completely free and customizable
Practical tip: The ideal way to use WeddingShare
Place a QR code on every table at your wedding. This way, guests can upload photos at any time. Especially cool: Let them take a few selfies directly from the event - this will make your gallery not only beautiful, but also really lively!
Use different galleries for the evening, the getting ready or the wedding dance. This way you can find the most beautiful moments later on.
Surface at a glance
Here is a small preview of what you and the users can expect. A gallery is equipped with an upload button including drag & drop and the images.



The mobile view looks like this. There is also a dark mode to protect the user's eyes.

For comparison, here is the same view that you have just seen for mobile as a view on a large screen on a notebook or PC.

As an admin, you can control exactly which photos should really be uploaded and should also be publicly accessible. It is always possible that someone will upload nonsense or a photo that you don't like. You have control over what ends up in WeddingShare and what doesn't.

Installation with Docker
Here is the complete Docker-Compose file you need (although most environment variables are not mandatory):
services:
weddingshare:
image: cirx08/wedding_share:latest
container_name: weddingshare
networks:
- sascha
ports:
- "5501:5000"
environment:
TZ: "Europe/Berlin"
TITLE: "Wedding photos"
DATABASE_TYPE: "sqlite"
GALLERY_COLUMNS: "4"
GALLERY_QUOTE: "Help us capture the best day of our lives!"
GALLERY_ALLOWED_FILE_TYPES: ".jpg,.jpeg,.png,.mp4,.mov,.mkv,.avi,.m4v,.heic,.webp,.avif"
GALLERY_MAX_FILE_SIZE_MB: "5000"
GALLERY_SECRET_KEY: "passwordForAllUsers"
DISABLE_UPLOAD: "false"
DISABLE_QR_CODE: "false"
DISABLE_HOME_LINK: "false"
SMTP_ENABLED: "true"
SMTP_RECIPIENT: "[email protected]"
SMTP_HOST: "smtp.host.net"
SMTP_PORT: "587"
SMTP_USERNAME: "[email protected]"
SMTP_PASSWORD: "smtpPassword"
SMTP_FROM: "[email protected]"
SMTP_DISPLAYNAME: "weddingphotos"
SMTP_USE_SSL: "true"
ENCRYPTION_KEY: "strongString"
ENCRYPTION_SALT: "strongOtherString"
EMAIL_REPORT: "true"
ACCOUNT_OWNER_USERNAME: "adminuser"
ACCOUNT_OWNER_PASSWORD: "myAdminPassword"
volumes:
- /mnt/cache/appdata/tools/weddingshare/uploads:/app/wwwroot/uploads:rw
- /mnt/cache/appdata/tools/weddingshare/thumbnails:/app/wwwroot/thumbnails:rw
- /mnt/cache/appdata/tools/weddingshare/custom-resources:/app/wwwroot/custom-resources:rw
- /mnt/cache/appdata/tools/weddingshare/config:/app/config:rw
healthcheck:
test: ["CMD", "bash", "-c", "timeout 10s bash -c ':> /dev/tcp/127.0.0.1/5000' || exit 1"]
interval: 1m
timeout: 10s
retries: 3
networks:
sascha:
external: true
These docker-compose.yml
file defines a service called weddingshare
which is an instance of the application WeddingShare starts. To create your secrets, simply use openssl rand -hex 32, which generates a hexadecimal code consisting of 32 characters and is absolutely secure.
You can then simply start the services with the following command (the name must of course be adapted):
docker compose -f "docker-compose-weddingshare.yml" up -d
Service definition:services > weddingshare
defines a service called "weddingshare". This service is based on the Docker image cirx08/wedding_share:latest
and gets the container name weddingshare
.
Network:
The container is connected to the external network sasha
connected. This network must already exist.
Ports:
Port 5000
in the container is configured via the host under port 5501
accessible - the web app is therefore available at http://:5501
accessible.
Environment variables (configuration of the app):
TZ
sets the time zone to "Europe/Berlin".TITLE
determines the title of the gallery ("Wedding photos").DATABASE_TYPE
is onsqlite
The database is therefore file-based.GALLERY_COLUMNS
sets the number of columns in the gallery view to 4.GALLERY_QUOTE
displays the text "Help us capture the best day of our lives!" on the page.GALLERY_ALLOWED_FILE_TYPES
defines which file types may be uploaded (.jpg, .mp4 etc.).GALLERY_MAX_FILE_SIZE_MB
allows a maximum of 5000 MB per file.GALLERY_SECRET_KEY
is a simple access code for users (e.g. guests at the wedding).DISABLE_UPLOAD
,DISABLE_QR_CODE
,HIDE_KEY_FROM_QR_CODE
,DISABLE_HOME_LINK
control the visibility and functions of the app such as QR codes, uploads and the home button.
Most of the application's environment variables can also be set or overwritten directly in the application. It is therefore not absolutely necessary.
E-mail (SMTP):
- Activated (
SMTP_ENABLED: true
) - E-mail address of the recipient:
[email protected]
- SMTP server:
smtp.host.net
, Port587
, SSL activated - Access via
SMTP_USERNAME
,SMTP_PASSWORD
, sender address and display name configured EMAIL_REPORT
Activates automatic mail reports for uploads
Security:
ENCRYPTION_KEY
andENCRYPTION_SALT
are used to encrypt sensitive dataACCOUNT_OWNER_USERNAME
andACCOUNT_OWNER_PASSWORD
define the admin login
Volumes (data persistence):
- Uploads are stored under
/mnt/cache/appdata/tools/weddingshare/uploads
saved - Thumbnails are stored separately in the subfolder
thumbnails
custom-resources
allows own branding (e.g. logo, colors)- The configurations and database are located in the volume
config
Healthcheck:
Docker regularly checks via TCP whether the service can be reached on port 5000. If three consecutive attempts fail, the container is marked as "unhealthy".
Network definition:
The external network sasha
is integrated - important for connections to other containers, for example.
Configuration
You can find the WeddingShare documentation at: https://docs.wedding-share.org/docs/Configuration/basic
Since version 1.6, you can adjust almost all configuration options directly in the browser as an admin - without any environment variables. In the Settings tab you will find, among other things:
- Guest gallery limits: Limit how many galleries can be created (via
MAX_GALLERY_COUNT
) - Activate demo mode: Show demo hints on your page (
DEMO_MODE
) - Resource uploadUpload logos, banners or other files and use them directly in the UI, thanks to the new "Custom resources" tab
In addition, the UI:
- Title and logo of the gallery
- Allowed file types
- max. upload size
- HTTPS enforcement
- Review mode (uploads only visible after approval)
- Administrator accounts
- more...
This allows you to change almost everything live without having to restart the container.
All settings that you have set in the Docker environment variables can be set or overwritten in the UI.
YouTube video implementation
Conclusion
Anyone looking for a stylish, secure and user-friendly solution for collecting wedding photos will be happy with WeddingShare. The app offers everything you need to preserve memories - without cloud subscriptions, data chaos or technical barriers.
Try it out for yourself - or share this article with someone who is planning a wedding!
0 Comments