mirror of
https://github.com/scottlamb/moonfire-nvr.git
synced 2024-12-25 06:35:56 -05:00
improve docs a bit
* use a more recent screenshot for selecting tag on github UI, and put in a `<details>` because it's annoyingly large. * put a border around `<details>` so it's easy to see where it starts/ends * add troubleshooting info for docker setup, to help with e.g. #296.
This commit is contained in:
parent
882596c7f6
commit
c5f5bd39ee
Binary file not shown.
Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 124 KiB |
@ -12,11 +12,17 @@ via the prebuilt Linux binaries available for x86-64, arm64, and arm. If you
|
||||
instead want to build Moonfire NVR yourself, see the [Build
|
||||
instructions](build.md).
|
||||
|
||||
First, make sure you are viewing instructions that match the release you intend
|
||||
<table><tr><td><details>
|
||||
<summary>Go to the instructions for your exact Moonfire version</summary>
|
||||
|
||||
Make sure you are viewing instructions that match the release you intend
|
||||
to install. When viewing this page on Github, look for a pull-down in the upper
|
||||
left, and pick the [latest tagged version](https://github.com/scottlamb/moonfire-nvr/releases/latest):
|
||||
|
||||
![Selecting a version of install instructions](install-version.png)
|
||||
<img src="install-version.png" height=367 alt="Selecting a version of install instructions">
|
||||
|
||||
</details></td></tr></table>
|
||||
|
||||
|
||||
Download the binary for your platform from the matching GitHub release.
|
||||
Install it as `/usr/local/bin/moonfire-nvr` and ensure it is executable, e.g.
|
||||
@ -29,7 +35,7 @@ $ curl -OL "https://github.com/scottlamb/moonfire-nvr/releases/download/$VERSION
|
||||
$ sudo install -m 755 "moonfire-nvr-$VERSION-$ARCH" /usr/local/bin/moonfire-nvr
|
||||
```
|
||||
|
||||
<details>
|
||||
<table><tr><td><details>
|
||||
<summary>Docker</summary>
|
||||
|
||||
If you are a Docker fan, you can install the `ghcr.io/scottlamb/moonfire-nvr`
|
||||
@ -44,11 +50,12 @@ services:
|
||||
command: run
|
||||
|
||||
volumes:
|
||||
# Mount a Docker volume called `moonfire-db` to Moonfire's default
|
||||
# database path.
|
||||
# Pass through `/var/lib/moonfire-nvr` from the host.
|
||||
- "/var/lib/moonfire-nvr:/var/lib/moonfire-nvr"
|
||||
|
||||
# Pass through `/etc/moonfire-nvr.toml` from the host.
|
||||
# Be sure to create `/etc/moonfire-nvr.toml` first (see below).
|
||||
# Docker will "helpfully" create a directory by this name otherwise.
|
||||
- "/etc/moonfire-nvr.toml:/etc/moonfire-nvr.toml:ro"
|
||||
|
||||
# Add additional mount lines here for each sample file directory
|
||||
@ -59,8 +66,10 @@ services:
|
||||
# it from the host for Moonfire to support local time.
|
||||
- "/usr/share/zoneinfo:/usr/share/zoneinfo:ro"
|
||||
|
||||
# Edit this to match your `moonfire-nvr` user (see `useradd` command in
|
||||
# install instructions).
|
||||
# Edit this to match your `moonfire-nvr` user.
|
||||
# - Be sure to run the `useradd` command below first.
|
||||
# - Then run `echo $(id -u moonfire-nvr):$(id -u moonfire-nvr`) to see
|
||||
# what should be filled in here.
|
||||
user: UID:GID
|
||||
|
||||
# Uncomment this if Moonfire fails with `clock_gettime failed` (likely on
|
||||
@ -96,7 +105,7 @@ Command reference:
|
||||
| Run interactive configuration | `sudo -u moonfire-nvr moonfire-nvr config 2>debug-log` | `sudo docker compose run --rm moonfire-nvr config 2>debug-log` |
|
||||
| Enable and start the server | `sudo systemctl enable --now moonfire-nvr` | `sudo docker compose up --detach moonfire-nvr` |
|
||||
|
||||
</details>
|
||||
</details></td></tr></table>
|
||||
|
||||
Next, you'll need to set up your filesystem and the Moonfire NVR user.
|
||||
|
||||
@ -188,15 +197,15 @@ by using the `moonfire-nvr` binary's text-based configuration tool.
|
||||
$ sudo -u moonfire-nvr moonfire-nvr config 2>debug-log
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>Did it return without doing anything?</summary>
|
||||
<table><tr><td><details>
|
||||
<summary>Did it return without doing anything?</summary>
|
||||
|
||||
If `moonfire-nvr config` returns you to the console prompt right away, look in
|
||||
the `debug-log` file for why. One common reason is that you have Moonfire NVR
|
||||
running; you'll need to shut it down first. If you are running a systemd
|
||||
service as described below, try `sudo systemctl stop moonfire-nvr` before
|
||||
editing the config and `sudo systemctl start moonfire-nvr` after.
|
||||
</details>
|
||||
</details></td></tr></table>
|
||||
|
||||
In the user interface,
|
||||
|
||||
|
@ -10,6 +10,10 @@ need more help.
|
||||
* [Slow operations](#slow-operations)
|
||||
* [Camera stream errors](#camera-stream-errors)
|
||||
* [Problems](#problems)
|
||||
* [Docker setup](#docker-setup)
|
||||
* [`"/etc/moonfire-nvr.toml" is a directory`](#etcmoonfire-nvrtoml-is-a-directory)
|
||||
* [`Error response from daemon: unable to find user UID: no matching entries in passwd file`](#error-response-from-daemon-unable-to-find-user-uid-no-matching-entries-in-passwd-file)
|
||||
* [`clock_gettime failed: EPERM: Operation not permitted`](#clock_gettime-failed-eperm-operation-not-permitted)
|
||||
* [Server errors](#server-errors)
|
||||
* [`Error: pts not monotonically increasing; got 26615520 then 26539470`](#error-pts-not-monotonically-increasing-got-26615520-then-26539470)
|
||||
* [Out of disk space](#out-of-disk-space)
|
||||
@ -185,6 +189,45 @@ quickly enough. In the latter case, you'll likely see a
|
||||
|
||||
## Problems
|
||||
|
||||
### Docker setup
|
||||
|
||||
If you are using the Docker compose snippet mentioned in the
|
||||
[install.md](install instructions), you might run into a few unique problems.
|
||||
|
||||
#### `"/etc/moonfire-nvr.toml" is a directory`
|
||||
|
||||
If you try running the Docker container with its
|
||||
`/etc/moonfire-nvr.toml:/etc/moonfire-nvr.toml:ro` mount before creating the
|
||||
config file, Docker will "helpfully" create it as a directory. Shut down
|
||||
the Docker container, remove the directory, and try again.
|
||||
|
||||
#### `Error response from daemon: unable to find user UID: no matching entries in passwd file`
|
||||
|
||||
If Docker produces this error, look at this section of the docker compose setup:
|
||||
|
||||
```yaml
|
||||
# Edit this to match your `moonfire-nvr` user.
|
||||
# - Be sure to run the `useradd` command below first.
|
||||
# - Then run `echo $(id -u moonfire-nvr):$(id -u moonfire-nvr`) to see
|
||||
# what should be filled in here.
|
||||
user: UID:GID
|
||||
```
|
||||
|
||||
#### `clock_gettime failed: EPERM: Operation not permitted`
|
||||
|
||||
If commands fail with an error like the following, you're likely running
|
||||
Docker with an overly restrictive `seccomp` setup. [This stackoverflow
|
||||
answer](https://askubuntu.com/questions/1263284/apt-update-throws-signature-error-in-ubuntu-20-04-container-on-arm/1264921#1264921) describes the
|
||||
problem in more detail. The simplest solution is to uncomment
|
||||
the `- seccomp: unconfined` line in your Docker compose file.
|
||||
|
||||
```console
|
||||
$ sudo docker compose run --rm moonfire-nvr --version
|
||||
clock_gettime failed: EPERM: Operation not permitted
|
||||
|
||||
This indicates a broken environment. See the troubleshooting guide.
|
||||
```
|
||||
|
||||
### Server errors
|
||||
|
||||
#### `Error: pts not monotonically increasing; got 26615520 then 26539470`
|
||||
|
Loading…
Reference in New Issue
Block a user