Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
4b44279
Add CLAUDE.md with architecture overview and development commands
matthieudecamy May 16, 2026
2fdc9f4
Merge pull request #1 from matthieudecamy/claude/hopeful-wright-029bba
matthieudecamy May 16, 2026
378df93
Configure docker-compose.yaml for Synology NAS deployment
matthieudecamy May 16, 2026
2e51281
Merge pull request #2 from matthieudecamy/claude/condescending-torval…
matthieudecamy May 16, 2026
8dd563f
fix: add pytz to production dependencies
matthieudecamy May 16, 2026
dad5845
Merge pull request #3 from matthieudecamy/claude/condescending-torval…
matthieudecamy May 16, 2026
ae2ce6e
add Makefile with build command
matthieudecamy May 16, 2026
21af5d2
Merge pull request #4 from matthieudecamy/claude/condescending-torval…
matthieudecamy May 16, 2026
4587304
use local shlagi-tagger image instead of upstream stable
matthieudecamy May 16, 2026
d40156e
Merge pull request #5 from matthieudecamy/claude/condescending-torval…
matthieudecamy May 16, 2026
a1166b3
add config/ with beets config, genreexpand plugin and genres hierarchy
matthieudecamy May 16, 2026
74308f8
add update_config makefile target
matthieudecamy May 16, 2026
c4d7940
Merge pull request #6 from matthieudecamy/claude/condescending-torval…
matthieudecamy May 16, 2026
93f89f0
genreexpand: store genre_pre_expand and genre_warnings flex attrs
matthieudecamy May 16, 2026
c54043c
rename genre_warnings to genre_unrecognized
matthieudecamy May 16, 2026
8300d7e
Merge pull request #7 from matthieudecamy/claude/condescending-torval…
matthieudecamy May 16, 2026
748d03d
add beets-flask config with Synology ignore rules and inbox setup
matthieudecamy May 16, 2026
e7d78f8
add beets-flask config with Synology ignore rules and inbox setup
matthieudecamy May 16, 2026
85e5fc5
Merge pull request #8 from matthieudecamy/claude/condescending-torval…
matthieudecamy May 16, 2026
603a45d
fix update_config to copy contents not directory
matthieudecamy May 16, 2026
5447f1e
Merge pull request #9 from matthieudecamy/claude/condescending-torval…
matthieudecamy May 16, 2026
0fa629f
move docker-compose.yaml to root for easier use
matthieudecamy May 16, 2026
3a8406e
remove .claude/ from repo and add to .gitignore
matthieudecamy May 16, 2026
5b57c86
Merge pull request #10 from matthieudecamy/claude/condescending-torva…
matthieudecamy May 16, 2026
30fef47
set container_name to shlagi-tagger
matthieudecamy May 16, 2026
9aa3d47
rebrand UI to Shlagi Tagger
matthieudecamy May 16, 2026
a65a59b
Merge pull request #11 from matthieudecamy/claude/condescending-torva…
matthieudecamy May 16, 2026
22a9252
fix genreexpand loading via startup.sh
matthieudecamy May 16, 2026
3847ae0
Fix genreexpand plugin loading via startup.sh (#12)
matthieudecamy May 16, 2026
c7c75bb
add run.sh as make alternative for Synology NAS
matthieudecamy May 16, 2026
04df7fe
Add run.sh as make alternative for Synology NAS (#13)
matthieudecamy May 16, 2026
9423b6e
fix: apply inbox ignore patterns before enqueueing in watchdog
matthieudecamy May 16, 2026
f01031c
fix: filter ignored paths in watchdog before enqueueing (#14)
matthieudecamy May 16, 2026
6d77305
fix: bump base image to Alpine 3.21 for Node 22 LTS compatibility
matthieudecamy May 16, 2026
5b8fc45
fix: bump base image to Alpine 3.21 for Node 22 LTS (#15)
matthieudecamy May 16, 2026
5d7106b
fix: strip CRLF from entrypoint scripts and enforce LF in .gitattributes
matthieudecamy May 16, 2026
63166f4
fix: remove CRLF workaround from Dockerfile, normalize entrypoints to LF
matthieudecamy May 16, 2026
0acc5dc
fix: Alpine 3.21, CRLF entrypoints, and @eaDir watchdog ignore (#16)
matthieudecamy May 16, 2026
7995768
fix: strip CRLF and set executable bit on entrypoint scripts in Docke…
matthieudecamy May 16, 2026
74368b9
fix: use get_config().ignore_globs instead of raw ConfigView.get(list…
matthieudecamy May 17, 2026
e63c7c2
fix: use get_config().ignore_globs in watchdog (#17)
matthieudecamy May 17, 2026
d1f7e5d
revert: remove sed CRLF strip from Dockerfile
matthieudecamy May 17, 2026
ad87321
fix: use get_config().ignore_globs in watchdog and remove sed workaro…
matthieudecamy May 17, 2026
998de92
fix: declare genre_pre_expand and genre_unrecognized as beets flex at…
matthieudecamy May 17, 2026
7bf1462
fix: declare genre flex attributes in beets config (#19)
matthieudecamy May 17, 2026
ae83052
perf: cache dir stats in DB to fix slow home screen load
matthieudecamy May 17, 2026
20fc075
fix: skip unset flex fields when serializing items and albums
matthieudecamy May 17, 2026
4f28de1
fix: skip unset flex fields when serializing items and albums (#21)
matthieudecamy May 17, 2026
04967b4
perf: cache dir stats in DB to fix slow home screen load (#20)
matthieudecamy May 17, 2026
10dcb05
chore: bump version to 1.2.2
matthieudecamy May 19, 2026
d910bdf
chore: bump version to 1.2.2 (#22)
matthieudecamy May 19, 2026
f2a4795
ci: build and push Docker image to GHCR on merge to main (#23)
matthieudecamy May 19, 2026
74c34fa
Revert "ci: build and push Docker image to GHCR on merge to main (#23…
matthieudecamy May 19, 2026
e43a3c3
ci: build and push Docker image to GHCR on merge to main (#25)
matthieudecamy May 19, 2026
56d2556
perf: eliminate home screen loading delay (#26)
matthieudecamy May 19, 2026
1f895d1
Update config volume path to USB share
matthieudecamy May 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 34 additions & 34 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,34 +1,34 @@
# following this reference suggesting to exclude everything, and only
# manually include whats needed
# https://markbirbeck.com/2018/12/07/getting-control-of-your-dockerignore-files/

# Let's taylor the docker ignore only for the production image, there is no real
# need to push the dev image to the registry

*

!backend/beets_flask
!backend/pyproject.toml
!backend/main.py
!backend/launch_*.py
!backend/generate_types.py

!configs/

!frontend/src/
!frontend/public/
!frontend/dist/

!frontend/.eslintrc.js
!frontend/index.html
!frontend/package.json
!frontend/pnpm-lock.yaml
!frontend/postcss.config.js
!frontend/tailwind.config.js
!frontend/tsconfig.json
!frontend/vite.config.ts

!README.md
!LICENSE
!docker/entrypoints/entrypoint*.sh
!docker/entrypoints/common.sh
# following this reference suggesting to exclude everything, and only
# manually include whats needed
# https://markbirbeck.com/2018/12/07/getting-control-of-your-dockerignore-files/
# Let's taylor the docker ignore only for the production image, there is no real
# need to push the dev image to the registry
*
!backend/beets_flask
!backend/pyproject.toml
!backend/main.py
!backend/launch_*.py
!backend/generate_types.py
!configs/
!frontend/src/
!frontend/public/
!frontend/dist/
!frontend/.eslintrc.js
!frontend/index.html
!frontend/package.json
!frontend/pnpm-lock.yaml
!frontend/postcss.config.js
!frontend/tailwind.config.js
!frontend/tsconfig.json
!frontend/vite.config.ts
!README.md
!LICENSE
!docker/entrypoints/entrypoint*.sh
!docker/entrypoints/common.sh
6 changes: 3 additions & 3 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# PyUpgrade
d7fdc2e24eec7e5b58585ea2a82509ffd3283ad0
# Prettier formatting
# PyUpgrade
d7fdc2e24eec7e5b58585ea2a82509ffd3283ad0
# Prettier formatting
15d9ca8c5b430e61c11d0a59cf507bba56ccad4d
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.sh text eol=lf
60 changes: 30 additions & 30 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,30 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**Expected behavior**
A clear and concise description of what you expected to happen.

**To Reproduce**

- Go to '...'
- Click on '....'
- Scroll down to '....'
- See error
- Technical Details
- Things that might help us isolate the issue:

**Technical Details**
- Screenshots
- Version number of beets-flask
- Log outputs (frontend and backend)
- Configs
- Docker-compose file
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**Expected behavior**
A clear and concise description of what you expected to happen.
**To Reproduce**
- Go to '...'
- Click on '....'
- Scroll down to '....'
- See error
- Technical Details
- Things that might help us isolate the issue:
**Technical Details**
- Screenshots
- Version number of beets-flask
- Log outputs (frontend and backend)
- Configs
- Docker-compose file
30 changes: 15 additions & 15 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: feature_request
assignees: ''

---

Just some ideas how to get started with the feature request:

- Is your feature request related to a problem? Please describe.
- Describe the solution you'd like
- Describe alternatives you've considered
- Additional context
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: feature_request
assignees: ''
---
Just some ideas how to get started with the feature request:
- Is your feature request related to a problem? Please describe.
- Describe the solution you'd like
- Describe alternatives you've considered
- Additional context
94 changes: 47 additions & 47 deletions .github/ISSUE_TEMPLATE/help-wanted.md
Original file line number Diff line number Diff line change
@@ -1,47 +1,47 @@
---
name: Help wanted
about: 'Please help: I have trouble setting this up.'
title: ''
labels: ''
assignees: ''

---

Before posting an issue, please take a few minutes to search the docs and old issues.
(Don't hesitate to ask though, no need to spend your whole evening 😁)

Please include as much of the details below as you can:
- What have you tried to get it working?
- Where do you get stuck?
- Maybe you already have a gut-feeling what might be the problem?

---

**beets-flask config**
```yaml
# paste config here
```

**beets config**
```yaml
# paste config here, remove sensitive information like login data
```

**Docker-compose file / Docker command**
```yaml
# paste here, in particular volume mounts
```

**Container logs**
Find the output from `docker logs beets-flask` below:
```
> docker logs beets-flask
[Entrypoint] Running as 'beetle' with UID 1000 and GID 1002
[Entrypoint] Current working directory: /repo
[Entrypoint] Version info:
[Entrypoint] Backend: 1.1.1
[Entrypoint] Frontend: 1.1.1
[Entrypoint] Mode: prod
INFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
...
```
---
name: Help wanted
about: 'Please help: I have trouble setting this up.'
title: ''
labels: ''
assignees: ''
---
Before posting an issue, please take a few minutes to search the docs and old issues.
(Don't hesitate to ask though, no need to spend your whole evening 😁)
Please include as much of the details below as you can:
- What have you tried to get it working?
- Where do you get stuck?
- Maybe you already have a gut-feeling what might be the problem?
---
**beets-flask config**
```yaml
# paste config here
```
**beets config**
```yaml
# paste config here, remove sensitive information like login data
```
**Docker-compose file / Docker command**
```yaml
# paste here, in particular volume mounts
```
**Container logs**
Find the output from `docker logs beets-flask` below:
```
> docker logs beets-flask
[Entrypoint] Running as 'beetle' with UID 1000 and GID 1002
[Entrypoint] Current working directory: /repo
[Entrypoint] Version info:
[Entrypoint] Backend: 1.1.1
[Entrypoint] Frontend: 1.1.1
[Entrypoint] Mode: prod
INFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
...
```
76 changes: 38 additions & 38 deletions .github/workflows/changelog_reminder.yml
Original file line number Diff line number Diff line change
@@ -1,38 +1,38 @@
name: Verify changelog updated

on:
pull_request_target:
types:
- opened
- ready_for_review

jobs:
check_changes:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v4

- name: Get all updated Python files
id: changed-files
uses: tj-actions/changed-files@v46
with:
files: |
**.py
**.ts
**.tsx

- name: Check for the changelog update
id: changelog-update
uses: tj-actions/changed-files@v46
with:
files: CHANGELOG.md

- name: Comment under the PR with a reminder
if: steps.changed-files.outputs.any_changed == 'true' && steps.changelog-update.outputs.any_changed == 'false'
uses: thollander/actions-comment-pull-request@v2
with:
message: "Thank you for the PR! The changelog has not been updated, so here is a friendly reminder to check if you need to add an entry."
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
name: Verify changelog updated
on:
pull_request_target:
types:
- opened
- ready_for_review
jobs:
check_changes:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v4
- name: Get all updated Python files
id: changed-files
uses: tj-actions/changed-files@v46
with:
files: |
**.py
**.ts
**.tsx
- name: Check for the changelog update
id: changelog-update
uses: tj-actions/changed-files@v46
with:
files: CHANGELOG.md
- name: Comment under the PR with a reminder
if: steps.changed-files.outputs.any_changed == 'true' && steps.changelog-update.outputs.any_changed == 'false'
uses: thollander/actions-comment-pull-request@v2
with:
message: "Thank you for the PR! The changelog has not been updated, so here is a friendly reminder to check if you need to add an entry."
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
Loading
Loading