Commit Graph

1312 Commits

Author SHA1 Message Date
Kostiantyn
69e595000d Refactoring part 2.11: Long func refactoring in server and utils (#1083)
* Split long functions and optimize code

* Addressing comments

---------

Co-authored-by: Konstantin Koval
2024-10-09 18:20:03 +03:00
Kostiantyn
83e441650b Split long functions and optimize code (#1082)
Co-authored-by: Konstantin Koval
2024-10-08 21:58:17 +03:00
Kostiantyn
5fc8feb75e Refactoring part 2.3: Long func refactoring in graphql/models (#1075)
* Split long functions and optimize code

* 2 more small files

---------

Co-authored-by: Konstantin Koval
2024-10-08 21:10:34 +03:00
Kostiantyn
f8b9590aa9 Refactoring part 2.1: Long func refactoring in database (#1073)
* Split long functions and optimize code

* Replace `errors.Wrap()` with the `fmt.Errorf()`; rename `process*()` functions to `parse*()`

---------

Co-authored-by: Konstantin Koval
2024-10-04 16:49:41 +03:00
Kostiantyn
87acd54291 Fix ESLint step in CI - part 2 (#1086)
* Run ESLint inside the testing container

* Switch to `docker exec` as the container is still alive after the testing

* Get back to `docker run`, as `exec` doesn't work for stopped containers

* Add missing ESLint plugin for React

* And 1 more missing plugin

* Add missing command to copy the report

* Set `$PHOTOVIEW_LISTEN_IP` to "0.0.0.0" as it has to accept connections from outside and from the healthcheck in localhost

---------

Co-authored-by: Konstantin Koval <kkb@ukr.net>
2024-10-04 11:56:17 +02:00
Kostiantyn
ff009a6ae6 Set $NODE_ENV according to the image purpose during Docker build (#1088)
* Set $NODE_ENV according to the image purpose during Docker build

* Move `husky` from dev-deps to prod-deps, as it is used during prod `npm ci`

---------

Co-authored-by: Konstantin Koval <kkb@ukr.net>
2024-10-04 11:20:49 +02:00
Kostiantyn
7057643b5d Fix ESLint step in UI testing job and add CodeCov tokens (#1084)
* Add missing script line back to the `package.json`

* Set CodeCov token for coverage upload steps

---------

Co-authored-by: Konstantin Koval <kkb@ukr.net>
2024-10-03 18:03:50 +02:00
Kostiantyn
bf765abde4 Fetch all tags during checkout (#1072)
Co-authored-by: Konstantin Koval <kkb@ukr.net>
2024-10-03 13:13:59 +02:00
Kostiantyn
57d5ac5235 Bump version (#1070)
Co-authored-by: Konstantin Koval <kkb@ukr.net>
2024-10-01 16:11:02 +02:00
Kostiantyn
dee3a151e9 Update GitHub workflows with various improvements (#1028)
Updated DB images in tests to align with the PROD setup
Try to upload coverage only if tests were executed (passed or failed) - not skipped or canceled
Added ESLint execution after UI tests with results exported to artifact
Shifted scheduled run time from 00 minutes according to GitHub recommendations, as the 00 minutes of each hour is the busiest time
Dynamically extract a list of langs from the repo to use them for CodeQL analysis instead of hardcoded ones
Updated versions of several outdated actions
Added the Autobuild step before CodeQL analysis for GO
Added the Anchore dependency scan job, reporting to the Security tab. I can add steps to manage PR comments with the results, but I need a token to be provided by @viktorstrate
Added the Hadolint Dockerfile scan job, reporting to the Security tab. I can add steps to manage PR comments with the results, but I need a token to be provided by @viktorstrate
Implemented weekly rebuild of images for the latest commit in the master branch and the latest released tag. It will recreate images with the recent base image and 3rd-party dependencies even if there were no new pushes for a long time
Added the Dockle container analysis job to be run on master and tag and validate just pushed images, reporting to the Security tab
Added golangci-lint config to the /api folder, as a starting point and for local usage
Added 2 weekly jobs for Dependabot:
-- Maintain dependencies for GitHub Actions
-- Maintain dependencies for Dockerfile

---------

Co-authored-by: Konstantin Koval
2024-10-01 15:50:44 +03:00
Googol Lee
f861c97b49 Include all heif plugins in one so file. 2024-09-30 19:53:17 +02:00
Googol Lee
9547be075c Build libheif with all dependencies in one so file. 2024-09-30 17:16:09 +02:00
Kostiantyn
d1193c5ca4 Refactoring part 1: Fix some annoying linter warnings in API code (#1064)
* names, constants of reusable strings, removed unneeded `if`, replaced deprecated imports

* more deprecated imports replaced

* What is this?))

* Fix a path and quote a var in Dockerfile

* Addressing review comments

---------

Co-authored-by: Konstantin Koval <kkb@ukr.net>
2024-09-30 14:45:02 +02:00
Kostiantyn
70a3944e21 Bump gqlgen (#1061)
Co-authored-by: Konstantin Koval <kkb@ukr.net>
2024-09-30 11:07:25 +02:00
Googol Lee
a1263feac4 Update gqlgen and fix the code. (#1055) 2024-09-17 17:00:03 +02:00
Googol Lee
340c181442 Use self-building dependencies and update the code with imagemagick. (#1053) 2024-09-17 15:02:23 +02:00
Googol Lee
4b678f201d Fix cache pushing problem. (#1052) 2024-09-13 16:11:29 +02:00
Googol Lee
4655684b49 Fix cache flag in dependencies workflow. (#1050) 2024-09-13 13:41:39 +02:00
Googol Lee
49ae7d17df Fix cache options. (#1049) 2024-09-13 11:44:30 +02:00
Kostiantyn
e8914e0890 new deps (#1048)
Co-authored-by: Konstantin Koval <kkb@ukr.net>
2024-09-12 22:17:01 +02:00
Googol Lee
17b27d7e60 Add build workflow for workers. (#1047) 2024-09-12 19:09:03 +02:00
Amandus
8e602f8d2b docs: Add reminder to url encode postgres password env variable (#1041) 2024-09-06 17:49:48 +02:00
Googol Lee
0ffa7e05fa Bump to golang 1.23 (#1046) 2024-09-06 17:43:19 +02:00
Googol Lee
d91ce8ff42 Rollback uid/gid to 999. (#1044) 2024-09-06 15:34:32 +02:00
Googol Lee
a6cbfc76f3 Back to bookworm. (#1040) 2024-09-06 13:32:22 +02:00
Googol Lee
6e1e1d12ce Update to magick 7 in alpine. (#1035) 2024-09-02 22:12:00 +02:00
Googol Lee
85c1e52b06 Use alpine as base images. (#1033) 2024-09-02 18:35:45 +02:00
Googol Lee
ad13172a32 Switch to Debian testing and imagemagick. (#1021) 2024-08-29 10:30:06 +02:00
Googol Lee
6c5c304492 Fix the default value of BUILD_DATE. (#1027) 2024-08-29 09:01:42 +02:00
Googol Lee
bb66a8b791 Fix release version and date in UI. (#1025) 2024-08-27 21:46:29 +02:00
Jorilx
bef9e7c666 Add support for GIF images (#1024) 2024-08-20 22:41:30 +02:00
Kostiantyn
5438fbb3f4 Update crypto and image versions (#1015)
Co-authored-by: Konstantin Koval <kkb@ukr.net>
2024-08-11 20:02:24 +02:00
Googol Lee
cf1a66975d API server listens with the address of PHOTOVIEW_LISTEN_IP, #1010. (#1014)
Fix the listened host reference in the `main()` function
2024-08-09 17:32:07 +03:00
Googol Lee
ebcbe6c057 Update workflow using Dockerfile. (#1003) 2024-08-03 23:17:54 +02:00
Kostiantyn
4d9ce30583 Bump 'crypto' and 'gorm' versions based on Dependabot PRs (#1008)
Co-authored-by: Konstantin Koval
2024-08-03 19:36:18 +03:00
Googol Lee
bdae9a67ce Add Set up Docker development environment in README.md (#997) 2024-07-23 21:56:30 +02:00
Googol Lee
0345bc1481 Update Set up development environment in README.md. (#995) 2024-07-16 23:10:38 +02:00
dependabot[bot]
7559a609aa Bump the npm_and_yarn group across 1 directory with 4 updates (#991)
Bumps the npm_and_yarn group with 4 updates in the /ui directory: [postcss](https://github.com/postcss/postcss), [braces](https://github.com/micromatch/braces), [ejs](https://github.com/mde/ejs) and [ws](https://github.com/websockets/ws).


Updates `postcss` from 8.4.38 to 8.4.39
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.38...8.4.39)

Updates `braces` from 3.0.2 to 3.0.3
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)

Updates `ejs` from 3.1.8 to 3.1.10
- [Release notes](https://github.com/mde/ejs/releases)
- [Commits](https://github.com/mde/ejs/compare/v3.1.8...v3.1.10)

Updates `ws` from 7.5.6 to 7.5.10
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.5.6...7.5.10)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:production
  dependency-group: npm_and_yarn
- dependency-name: braces
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: ejs
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: ws
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-10 19:29:42 +03:00
Blake Schafer
dad4533983 Create CONTRIBUTING.md (#943)
* Create CONTRIBUTING.md

Creating a resource file for any developer who wants to contribute to this open-source project. Adding more details than what was already provided, giving a detailed walkthrough for newcomers on how to make changes in the code.

* Implement the suggestions from the feedback, as well as merge the template from the discussion #934

---------

Co-authored-by: Konstantin Koval <kkb@ukr.net>
2024-07-09 20:56:01 +02:00
Googol Lee
365328457e Building scripts for apt/homebrew platforms. (#993) 2024-07-09 12:34:55 +02:00
Googol Lee
2f8f01b6d3 Add nodemon for ui developing. 2024-07-07 10:05:26 +02:00
Googol Lee
eab10af4a3 Remove loading env from tests. (#988)
* Remove loading env from tests.

* Rollback the test workflow.
2024-07-03 21:28:36 +03:00
Lajos Koszti
10e9e354b5 order root albums by path on settings page (#983)
Once you have more than a few paths assigned to a user, it becomes
quite hard to oversee the list.

Personally, I would add my albums to Photoview one by one, so I can
manage the processing better. For example, I can review and fix the face
recognition for one new album at a time, and I don't need to deal with
too much data.
Since I started to add the albums in a random order, it's relatively
hard to find which album is added and which is not.

An easy fix is to order the photo paths by their name.

- Extended the query of the rootAlbums to order them by path
2024-07-01 20:04:50 +02:00
Kostiantyn
df9af39a16 Validate incoming GPS data (#951)
* Validate incoming GPS data and throw an error if it is incorrect, storing Null values

* Extracted GPS data processing to function in external parser; optimized IF in internal parser; removed unnecessary comments; set exact values for positive test

* Add the migration for removing existing invalid GPS data and its test; added better errors to asserts in the GPS validation test

* Install FFmpeg and ExifTool on the API unit-test environment

* Fix 'stripped.jpg', 'IncorrectGPS.jpg', and 'CorrectGPS.jpg' tests for the external parser

* Optimized data validation in the external parser, returned error by the internal parser for invalid data, updated test to expect errors and handle them

* Switched from error to log entry in case of incorrect GPS data, as error handling is not so transparent in the internal parser

---------

Co-authored-by: Konstantin Koval
2024-06-29 10:32:48 +03:00
Kostiantyn
55d6097cc1 Update GO version in the go.mod and read it by the job to setup the testing environment for unit tests (#980)
Co-authored-by: Konstantin Koval
2024-06-28 14:59:31 +02:00
Googol Lee
e36b09753a Bump go version and modules. (#976)
* Bump go version to 1.22. Bump all go module to the newest version, except pinning libheif@v1.15.1 to match the c lib version in Debian bookworm.

* Update go_wrapper.sh to fit golang image.

* Update the way to set go envs.

* Test against go 1.22

* Set default shell for all building stage in Dockerfile.
2024-06-28 10:10:18 +03:00
Googol Lee
1cd34109b6 Optimize user's album filter. #705 (#962) 2024-06-27 21:21:09 +02:00
Kostiantyn
f79d379e38 Urgent small fixes in the Dockerfile and Compose configs (#972)
* Freeze UID and GID for the `photoview` user inside the image; added alternative permission configs description to the Readme and Makefile (as a comment); switched the default tag in the compose from `2` to `master`, as this is the most common user misunderstanding according to the issues and Discord questions

* Revert back to the tag `2` with the assumption of the release happening soon

---------

Co-authored-by: Konstantin Koval
v2.4.0
2024-06-23 14:28:02 +02:00
Kostiantyn
cd8d086429 Fix missing space and word duplication (#964)
Co-authored-by: Konstantin Koval <kkb@ukr.net>
2024-06-17 13:27:05 +01:00
Kostiantyn
df1610b13c change healthcheck command for MariaDB container (#963)
Co-authored-by: Konstantin Koval
2024-06-02 19:02:14 +01:00