From 071d87da8f23e601fa4238966843faac455378de Mon Sep 17 00:00:00 2001 From: skybldev Date: Mon, 10 Jan 2022 16:54:46 -0500 Subject: [PATCH] repo+build: updated info and docker-compose file - [repo] updated `README.md` and `doc/INSTALL.md` - [build] configure `server` and `client` to build locally - [dist] updated `doc/example.env` to unique build info --- README.md | 60 ++++++++++++++++++---------------------------- doc/INSTALL.md | 18 ++++++++++---- doc/example.env | 2 +- docker-compose.yml | 4 ++-- 4 files changed, 40 insertions(+), 44 deletions(-) diff --git a/README.md b/README.md index a86ef795..5e4ec6d6 100644 --- a/README.md +++ b/README.md @@ -1,50 +1,36 @@ # szurubooru -Szurubooru is an image board engine inspired by services such as Danbooru, -Gelbooru and Moebooru dedicated for small and medium communities. Its name [has -its roots in Polish language and has onomatopeic meaning of scraping or -scrubbing](http://sjp.pwn.pl/sjp/;2527372). It is pronounced as *shoorubooru*. +A fork of [szurubooru](https://github.com/rr-/szurubooru) aimed at storing photos and videos taken with physical cameras. -## Features +The idea for this started in [this issue](https://github.com/rr-/szurubooru/issues/340). I wanted a self-hosted replacement for Google Photos. -- Post content: images (JPG, PNG, GIF, animated GIF), videos (MP4, WEBM), Flash animations -- Ability to retrieve web video content using [youtube-dl](https://github.com/ytdl-org/youtube-dl) -- Post comments -- Post notes / annotations, including arbitrary polygons -- Rich JSON REST API ([see documentation](doc/API.md)) -- Token based authentication for clients -- Rich search system -- Rich privilege system -- Autocomplete in search and while editing tags -- Tag categories -- Tag suggestions -- Tag implications (adding a tag automatically adds another) -- Tag aliases -- Pools and pool categories -- Duplicate detection -- Post rating and favoriting; comment rating -- Polished UI -- Browser configurable endless paging -- Browser configurable backdrop grid for transparent images +## Added Features + +- **Date taken** + - Automatically extracts the date and time that the photo was taken on from its EXIF metadata. + - Date taken is shown on the post sidebar +- **Camera** + - Automatically extracts the make and model of the camera used to take the photo + - Also works with some videos +- **EXIF orientation support** + - Acknowledges EXIF orientation and generates thumbnails and post dimensions correctly + - Images with orientations other than 1 now render properly + +**Please note:** Date taken and Camera do not work with image formats that lack EXIF support (such as PNG) or have been stripped of EXIF metadata. ## Installation -It is recommended that you use Docker for deployment. [See installation instructions.](doc/INSTALL.md) -More installation resources, as well as related projects can be found on the -[GitHub project Wiki](https://github.com/rr-/szurubooru/wiki) +More installation resources as well as related projects can be found on upstream's [GitHub project Wiki](https://github.com/rr-/szurubooru/wiki). -## Screenshots +## Status and Plans -Post list: +This fork has reached the level of functionality I need for my personal use. As such, there are missing features that might be useful to some: -![20160908_180032_fsk](https://cloud.githubusercontent.com/assets/1045476/18356730/3f1123d6-75ee-11e6-85dd-88a7615243a0.png) +- Mass deletion support (will also implement this upstream when I get to it) +- Tests (honestly, I don't even want to touch these) +- Proper post merging +- Updated documentation -Post view: - -![20160908_180429_lmp](https://cloud.githubusercontent.com/assets/1045476/18356731/3f1566ee-75ee-11e6-9594-e86ca7347b0f.png) - -## License - -[GPLv3](LICENSE.md). +I am also planning to rewrite this fork's [`server`](server/) in another language sometime in the future. diff --git a/doc/INSTALL.md b/doc/INSTALL.md index d978e4a8..5743826b 100644 --- a/doc/INSTALL.md +++ b/doc/INSTALL.md @@ -6,7 +6,7 @@ and Docker Compose (version 1.6.0 or greater) already installed. 1. Download the `szurubooru` source: ```console - user@host:~$ git clone https://github.com/rr-/szurubooru.git szuru + user@host:~$ git clone https://github.com/skybldev/szurubooru.git szuru user@host:~$ cd szuru ``` 2. Configure the application: @@ -34,11 +34,11 @@ and Docker Compose (version 1.6.0 or greater) already installed. Read the comments to guide you. Note that `.env` should be in the root directory of this repository. -### Running the Application +### Building and Running the Application -Download containers: +Unlike the original szurubooru, this will need to be built locally: ```console -user@host:szuru$ docker-compose pull +user@host:szuru$ docker-compose build ``` For first run, it is recommended to start the database separately: @@ -62,6 +62,16 @@ To stop all containers: user@host:szuru$ docker-compose down ``` +NOTE: For Debian users, if `docker-compose build` spits out: +``` +ERROR: Service 'server' failed to build: failed to parse platform : "" is an invalid component of "": platform specifier component must match "^[A-Za-z0-9_-]+$": invalid argument +``` +...you will need to export Docker BuildKit flags: +```console +user@host:szuru$export DOCKER_BUILDKIT=1; export COMPOSE_DOCKER_CLI_BUILD=1 +``` +...then run again. + ### Additional Features 1. **CLI-level administrative tools** diff --git a/doc/example.env b/doc/example.env index 59e1e859..2526c4da 100644 --- a/doc/example.env +++ b/doc/example.env @@ -3,7 +3,7 @@ POSTGRES_USER=szuru POSTGRES_PASSWORD=changeme # This shows up on the homescreen, indicating build information -BUILD_INFO=latest +BUILD_INFO=skybldev-local # Port to expose HTTP service # Set to 127.0.0.1:8080 if you wish to reverse-proxy the docker's port, diff --git a/docker-compose.yml b/docker-compose.yml index 1da23bd6..6f24cb95 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,7 @@ version: '2' services: server: - image: szurubooru/server:latest + build: server depends_on: - sql environment: @@ -26,7 +26,7 @@ services: - "./server/config.yaml:/opt/app/config.yaml" client: - image: szurubooru/client:latest + build: client depends_on: - server environment: