Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/davwheat/node-js-file-uploads-server-docker
A Docker container for my Node.js file upload server.
https://github.com/davwheat/node-js-file-uploads-server-docker
docker docker-compose typescript
Last synced: about 1 month ago
JSON representation
A Docker container for my Node.js file upload server.
- Host: GitHub
- URL: https://github.com/davwheat/node-js-file-uploads-server-docker
- Owner: davwheat
- Created: 2021-10-10T18:09:10.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-12-22T01:11:07.000Z (11 months ago)
- Last Synced: 2024-05-01T16:41:18.318Z (7 months ago)
- Topics: docker, docker-compose, typescript
- Language: Shell
- Homepage: https://github.com/davwheat/node-js-file-uploads-server
- Size: 9.77 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Node File Uploads Server - Docker Container
This is a Docker setup for my [Node File Uploads Server](https://github.com/davwheat/node-js-file-uploads-server).
## Setup
1. Clone this repository
2. Edit the `env.jsonc` as needed
3. `docker-compose up -d`
4. Server should be accessible on port 4749## Introduction
This container takes away almost all the effort required to deploy this uploads server to a device. I personally use this container on my Raspberry Pi.
When starting the container, Docker will automatically pull the lastest Node 16 Docker image to use, as well as cloning the most up-to-date version of the uploads server. Subsequent runs will only call `git pull` instead of performing a full clone. Dependencies are automatically installed using Yarn within the container.
The `uploads` folder in this directory will be added as a Docker volume and mounted within the container at `/usr/uploads`. Compared to a normal hosting setup, this reduces the risks (but does not eliminate) of access to files outside the uploads folder.
The `env.jsonc` and `auth.json` are linked to the container bi-directionally, meaning that changes to these files will be synced between the host system and the container. Note that modifying the `env.jsonc` **does** require a restart of the container (`docker-compose restart`) due to caching.
## Editing configuration
When you edit your server configuration, you need to restart the Docker container for the changes to take effect.
A simple `docker-compose restart` should recreate the container if it's already running.
## Updating the server
The uploads server should automatically update when restarted, due to the [custom entrypoint file](docker-entrypoint.sh) used for the container.
If it doesn't, you can force a rebuild and update with the `restart-uncached.sh` script in the repo root.
## FAQs
### Using another port
The default port of `4749` has no significance and can be easily changed.
**Do not edit the port in the `env.jsonc`!** Instead, change the port in the `docker-compose.yml`.