seatsurfing / backend

Seatsurfing Backend
https://seatsurfing.app
GNU General Public License v3.0
146 stars 41 forks source link
co-working desk-booking free-seating room-booking seat-booking space-booking

Seatsurfing Backend

Seatsurfing is a software which enables your organisation's employees to book seats, desks and rooms.

This repository contains the Backend, which consists of:

Visit project's website for more information.

Screenshots

Web Admin UI

Seatsurfing Web Admin UI

Web Booking UI

Seatsurfing Web Booking UI

Quick reference

How to use the Docker image

Start using Docker Compose

version: '3.7'

services:
  server:
    image: ghcr.io/seatsurfing/backend
    restart: always
    networks:
      sql:
      http:
    ports:
      - 8080:8080
    environment:
      POSTGRES_URL: 'postgres://seatsurfing:DB_PASSWORD@db/seatsurfing?sslmode=disable'
      JWT_SIGNING_KEY: 'some_random_string'
      BOOKING_UI_BACKEND: 'booking-ui:3001'
      ADMIN_UI_BACKEND: 'admin-ui:3000'
      PUBLIC_URL: 'https://seatsurfing.your-domain.com'
      FRONTEND_URL: 'https://seatsurfing.your-domain.com'
  booking-ui:
    image: ghcr.io/seatsurfing/booking-ui
    restart: always
    networks:
      http:
    environment:
      FRONTEND_URL: 'https://seatsurfing.your-domain.com'
  admin-ui:
    image: ghcr.io/seatsurfing/admin-ui
    restart: always
    networks:
      http:
    environment:
      FRONTEND_URL: 'https://seatsurfing.your-domain.com'
  db:
    image: postgres:16
    restart: always
    networks:
      sql:
    volumes:
      - db:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: DB_PASSWORD
      POSTGRES_USER: seatsurfing
      POSTGRES_DB: seatsurfing

volumes:
  db:

networks:
  sql:
  http:

This starts...

Running on Kubernetes

Please refer to our Kubernetes documentation.

Environment variables

Please check out the documentation for information on available environment variables and further guidance.

Hint: When running in an IPV6-only Docker/Podman environment with multiple network interfaces bound to the Frontend containers, setting the LISTEN_ADDR environment variable can be necessary as NextJS binds to only one network interface by default. Set it to :: to bind to any address.