An open API service indexing awesome lists of open source software.

https://github.com/iron-e/winvoice-gui

A front-end for winvoice-server, which helps manage of invoices.
https://github.com/iron-e/winvoice-gui

graphical-user-interface gui invoice invoice-generator react typescript winvoice

Last synced: 8 months ago
JSON representation

A front-end for winvoice-server, which helps manage of invoices.

Awesome Lists containing this project

README

          

# winvoice-gui

## `docker`

A [Dockerfile](./Dockerfile) is provided to run the application in an isolated environment. A database is not included in the image, but is required to start the server.

### Build

Run the following command:

```sh
docker build [--build-arg = ...] [--tag ] .
```

For example:

```sh
docker build --build-arg GID=100 --tag winvoice-gui:latest .
```

#### Arguments

| Name | Default | Description |
| :-- | :-- | :-- |
| `DEFAULT_SERVER_ADDR` | `""` | The default [`winvoice-server`] address to connect to |
| `GID` | `10001` | The ID of the created group. |
| `UID` | `${GID}` | The ID of the created user. |

### Usage

> [!WARN]
>
> `winvoice-gui` is built with Next.js, which uses HTTP. It is recommended to:
>
> 1. never use `docker run --publish` with `winvoice-gui` images, and
> 2. use a reverse proxy to enable HTTPS.
>
> The `docker compose` integration provides an example of such an HTTPS proxy.
>
> See also: https://github.com/vercel/next.js/discussions/10935

After building, run:

```sh
docker run --expose 3000 --rm
```

## `docker compose`

A [compose file](./compose.yaml) is provided to run the application. A `postgres` image is included in the configuration.

> [!NOTE]
>
> See also the docs for:
>
> * [`nginx-proxy`]
> * [`winvoice-server`]

> [!IMPORTANT]
>
> The compose file requires `COMPOSE_EXPERIMENTAL_GIT_REMOTE=1` in the environment. It is possible to remove this requirement by manually merging [`winvoice-server`]'s compose file.

### Build

Run the following command:

```sh
docker compose up
```

#### Secrets

| Name | Path | Description |
| :- | :- | :- |
| `proxy-ssl` | `config/proxy/ssl/` | See [here](https://github.com/nginx-proxy/nginx-proxy/tree/main/docs#ssl-support) |
| `proxy-ssl-cadir` | `config/proxy/ssl-cadir/` | Trust authorities to use within the container. Structured like `/etc/ssl/certs/` in `alpine`. |

[`winvoice-server`]: https://github.com/Iron-E/winvoice-server/blob/master/README.Docker.md
[`nginx-proxy`]: https://github.com/nginx-proxy/nginx-proxy/blob/main/docs/README.md