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 weddingsharewhich 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 on sqlite 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, Port 587, 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 and ENCRYPTION_SALT are used to encrypt sensitive data
  • ACCOUNT_OWNER_USERNAME and ACCOUNT_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!

The product display was implemented using the affiliate-toolkit WordPress plugin.

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

en_US