# OpenIM Web Service

- [OpenIM Web Service](#openim-web-service)
  - [Overview](#overview)
  - [User](#user)
  - [Docker Deployment](#docker-deployment)
    - [Build the Docker Image](#build-the-docker-image)
    - [Run the Docker Container](#run-the-docker-container)
  - [Configuration](#configuration)
  - [Contributions](#contributions)


OpenIM Web Service is a lightweight containerized service built with Go. The service serves static files and allows customization via environment variables.

## Overview

- Built using Go.
- Deployed as a Docker container.
- Serves static files from a directory which can be set via an environment variable.
- The default port for the service is `20001`, but it can be customized using an environment variable.

## User

example：

```bash
$ ./openim-web -h
Usage of ./openim-web:
  -distPath string
        Path to the distribution (default "/app/dist")
  -port string
        Port to run the server on (default "20001")
```

Variables can be set as above, Environment variables can also be set

example:

```bash
$ export OPENIM_WEB_DIST_PATH="/app/dist"
$ export OPENIM_WEB_PPRT="11001"
```

Initialize the env configuration file:

```bash
$ make init
```

## Docker Deployment

### Build the Docker Image

Even though we've implemented automation, it's to make the developer experience easier:

To build the Docker image for OpenIM Web Service:

```bash
$ docker build -t openim-web .
```

### Run the Docker Container

To run the service:

```bash
$ docker run -e DIST_PATH=/app/dist -e PORT=20001 -p 20001:20001 openim-web
```

## Configuration

You can configure the OpenIM Web Service using the following environment variables:

- **DIST_PATH**: The path to the directory containing the static files. Default: `/app/dist`.
- **PORT**: The port on which the service listens. Default: `11001`.

## Contributions

We welcome contributions from the community. If you find any bugs or have feature suggestions, please create an issue or send a pull request.