Skip to main content
Version: 2025-04-02

Unicis Platform Community Edition (Self-Hosted)

Learn how to get started with Unicis Platform Community Edition (Self-Hosted).

This section will guide you through the process of self-hosting your instance of the Unicis Platform Community Edition (Self-Hosted). If you're interested in hosting your own instance, you'll need to install several additional dependencies. Follow our prerequisite guide below to install all the necessary dependencies and gather the required information.

Prerequisites​

To install Unicis Platform on a server, your server must meet the following requirements:

System requirements​

Install Node.js, npm. pnpm​

Downloading and installing Node.js and npm

npm install -g npm

Setup​

  • Fork the reposity
  • Clone the repositoy:
git clone https://github.com/<your_github_username>/unicis-platform-ce.git

Go to the poject folder

cd unicis-platform-ce

Install​

Install dependencies

npm install

Configure the environment​

Set up .env environment file

cp .env.example .env

Create a database (optional)​

note

To make the process of installing dependencies easier, we offer a docker-compose.yml with a Postgres container. If you already have running Postgress database please add the environment varialble in the .env file.

docker-compose up -d

Set up database schema​

caution

If you had data before, this would delete it and set up a new schema.

npx prisma db push

Start the server​

In a development environment:

npm run dev

Docker​

info

If you're using the unicis-platform Docker image with a PostgreSQL database in a container, please use the name of that container as the database host.

CapRover​

You will need to have installed CapRover on your server.

Create a Captain definition file.

/unicis-platform-ce/captain-definition
{
"schemaVersion": 2,
"dockerfilePath" :"./Dockerfile"
}

User the following Docker file sample.

/unicis-platform-ce/Dockerfile
# Use the official Node.js image as the base image
FROM node:18.18.2

# Set the working directory in the container
WORKDIR /app

# Copy package.json and package-lock.json to the working directory
COPY package*.json ./

# Install dependencies
RUN npm install --force

# Set up database schema
# RUN npx prisma db push

# Copy the entire application to the working directory
COPY . .

# Expose the port on which your Next.js app will run
EXPOSE 4002

# Set the DATABASE_URL environment variable
# ENV DATABASE_URL="//<USER-HERE>:<PASSWORD-HERE>@localhost:5432/<DATABASE NAME HERE>"
# DEV DB -> ENV DATABASE_URL=//<USER-HERE>:<PASSWORD-HERE>@localhost:5432/<DATABASE NAME HERE>

ARG NEXTAUTH_URL=${NEXTAUTH_URL}
ENV NEXTAUTH_URL=${NEXTAUTH_URL}
ARG NEXTAUTH_SECRET=${NEXTAUTH_SECRET}
ENV NEXTAUTH_SECRET=${NEXTAUTH_SECRET}
ARG SMTP_HOST=${SMTP_HOST}
ENV SMTP_HOST=${SMTP_HOST}
ARG SMTP_PORT=${SMTP_PORT}
ENV SMTP_PORT=${SMTP_PORT}
ARG SMTP_USER=${SMTP_USER}
ENV SMTP_USER=${SMTP_USER}
ARG SMTP_PASSWORD=${SMTP_PASSWORD}
ENV SMTP_PASSWORD=${SMTP_PASSWORD}
ARG SMTP_FROM=${SMTP_FROM}
ENV SMTP_FROM=${SMTP_FROM}
ARG BILLING_EMAIL=${BILLING_EMAIL}
ENV BILLING_EMAIL=${BILLING_EMAIL}
ARG DATABASE_URL=${DATABASE_URL}
ENV DATABASE_URL=${DATABASE_URL}
ARG APP_URL=${APP_URL}
ENV APP_URL=${APP_URL}
ARG SVIX_URL=${SVIX_URL}
ENV SVIX_URL=${SVIX_URL}
ARG SVIX_API_KEY=${SVIX_API_KEY}
ENV SVIX_API_KEY=${SVIX_API_KEY}

# Users will need to confirm their email before accessing the app feature
ARG CONFIRM_EMAIL=${CONFIRM_EMAIL}
ENV CONFIRM_EMAIL=${CONFIRM_EMAIL}

# Matamo
ARG NEXT_PUBLIC_MATOMO_URL=${NEXT_PUBLIC_MATOMO_URL}
ENV NEXT_PUBLIC_MATOMO_URL=${NEXT_PUBLIC_MATOMO_URL}
ARG NEXT_PUBLIC_MATOMO_SITE_ID=${NEXT_PUBLIC_MATOMO_SITE_ID}
ENV NEXT_PUBLIC_MATOMO_SITE_ID=${NEXT_PUBLIC_MATOMO_SITE_ID}


# Build the Next.js app
RUN npm run build

# Start the Next.js app
CMD ["npm", "start"]
info

If you're using the unicis-platform CapRover image with a PostgreSQL database in a container, please set up your database manually and link it to caprover envirionemnt srv-captain--db-unicis.

Add the environment variable in your CapRover application configuration.

CapRover set up PostgreSQL database​

Please use the following Database Connection steps from CapRover.

In CapRover:

  1. click on Apps -> One-Click Apps/Database
  2. Search: PostgreSQL
  3. Enter your App name, version username, passowrd and database name from below example
  4. Click Deploy

Specify the varibales in the application configuration as bellow.

POSTGRES_USER=platform
POSTGRES_PASSWORD=[password]]
POSTGRES_DB=unicis_platform
POSTGRES_INITDB_ARGS=

Port Mapping, Server port 5432 and container port 5432.

Setup and access environment​

/unicis-platform-ce/.env.example
# Only required for localhost
NEXTAUTH_URL=http://localhost:4002

# You can use openssl to generate a random 32 character key: openssl rand -base64 32
NEXTAUTH_SECRET=[openssl generated random key without brackets]

# SMTP / Email settings
SMTP_HOST=
SMTP_PORT=
SMTP_USER=
SMTP_PASSWORD=
SMTP_FROM=
BILLING_EMAIL=

# For AI LLAMA API Token
LLAMA_TOKEN=


# If you are using Docker, you can retrieve the values from: docker-compose.yml
DATABASE_URL=postgresql://<USER-HERE>:<PASSWORD-HERE>@localhost:5432/<DATABASE NAME HERE>

APP_URL=http://localhost:4002

SVIX_URL=https://api.eu.svix.com
SVIX_API_KEY=

GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=

GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=

RETRACED_URL=
RETRACED_API_KEY=
RETRACED_PROJECT_ID=

# Hide landing page and redirect to login page
HIDE_LANDING_PAGE=false

# SSO groups can be prefixed with this identifier in order to avoid conflicts with other groups.
# For example unicis-admin would be resolved to admin, unicis-member would be resolved to member, etc.
GROUP_PREFIX=unicis-

# Users will need to confirm their email before accessing the app feature
CONFIRM_EMAIL=false

# Disable non-business email signup
DISABLE_NON_BUSINESS_EMAIL_SIGNUP=false

# Mixpanel
NEXT_PUBLIC_MIXPANEL_TOKEN=

# Enable Auth providers (comma separated)
# Supported providers: github, google, saml, email, credentials
AUTH_PROVIDERS=

# OpenTelemetry
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=
OTEL_EXPORTER_OTLP_METRICS_HEADERS=
OTEL_EXPORTER_OTLP_METRICS_PROTOCOL=grpc
OTEL_EXPORTER_DEBUG=true
OTEL_PREFIX=unicis.saas

NEXT_PUBLIC_TERMS_URL='/terms'
NEXT_PUBLIC_PRIVACY_URL='/privacy'

NEXT_PUBLIC_DARK_MODE=false

# Team feature
FEATURE_TEAM_SSO=true
FEATURE_TEAM_DSYNC=true
FEATURE_TEAM_AUDIT_LOG=true
FEATURE_TEAM_WEBHOOK=true
FEATURE_TEAM_API_KEY=true

# Google reCAPTCHA
RECAPTCHA_SITE_KEY=
RECAPTCHA_SECRET_KEY=

Accessing the Unicis Platform​

Open your browser

http://localhost:4002