Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.2.0"
".": "0.3.0"
}
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,28 @@
# Changelog

## [0.3.0](https://github.com/dmitryplyaskin/SillyInnkeeper/compare/v0.2.0...v0.3.0) (2025-12-27)


### 🚀 New Features

* add bulk delete functionality for cards and enhance multi-select features in the UI ([7103772](https://github.com/dmitryplyaskin/SillyInnkeeper/commit/7103772a3697be9bbf53749ace08502c4a32c770))
* add common test search ([2608d36](https://github.com/dmitryplyaskin/SillyInnkeeper/commit/2608d366f4c990344740628157f4b50e2f80af1b))
* add environment variable to control logging of unparsable card errors ([6415b18](https://github.com/dmitryplyaskin/SillyInnkeeper/commit/6415b18c9687388dc944609f19ce125a04e5f80a))
* add FTS5 card search ([ec51ff5](https://github.com/dmitryplyaskin/SillyInnkeeper/commit/ec51ff584074f03652a6bec21b68dd3bc329f697))
* add import from folder ([df4d0fa](https://github.com/dmitryplyaskin/SillyInnkeeper/commit/df4d0fa6c59f11c887313c5d0d2c3f4ea269ed9f))
* add pattern search ([d7fa973](https://github.com/dmitryplyaskin/SillyInnkeeper/commit/d7fa97342da04c4e90a11b38483c375054d8cd2a))
* add sort by tokens ([435b88e](https://github.com/dmitryplyaskin/SillyInnkeeper/commit/435b88e9ebc38ff63a6e71d60ba1958ff3bc8808))
* add tag editor ([97065f3](https://github.com/dmitryplyaskin/SillyInnkeeper/commit/97065f3838a0a372464286fa92c659f39ae4e541))
* left side bar ([ab62973](https://github.com/dmitryplyaskin/SillyInnkeeper/commit/ab62973d3f294a6fe3853f16ecdd15ba252d95b0))


### 🐛 Bug Fixes

* import modal bug ([cf0cde1](https://github.com/dmitryplyaskin/SillyInnkeeper/commit/cf0cde15cf13de10ee727a3aa8d8a948fcf82e0f))
* import tags from extention (update ST-Extension-SillyInnkeeper) ([b68ee5a](https://github.com/dmitryplyaskin/SillyInnkeeper/commit/b68ee5a8c47f14e3fcc0154346cd7deba57e76c5))
* raise payload limit ([7e06e41](https://github.com/dmitryplyaskin/SillyInnkeeper/commit/7e06e41dc29733c618023a7084c3dbb86dd86551))
* raise payload limit ([94e8ab2](https://github.com/dmitryplyaskin/SillyInnkeeper/commit/94e8ab2c67a0a8cbb43e69a65ed9e460a047ec49))

## [0.2.0](https://github.com/dmitryplyaskin/SillyInnkeeper/compare/v0.1.0...v0.2.0) (2025-12-23)


Expand Down
76 changes: 76 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Stage 1: Build Client
FROM node:24-alpine AS client-builder

RUN corepack enable && corepack prepare yarn@4.12.0 --activate

WORKDIR /app

COPY SillyInnkeeper/package.json ./
COPY SillyInnkeeper/client ./client

WORKDIR /app/client

RUN yarn install --immutable
RUN yarn build

# Stage 2: Build Server
FROM node:24-alpine AS server-builder

RUN corepack enable && corepack prepare yarn@4.12.0 --activate

# Install build dependencies for native modules
RUN apk add --no-cache python3 make g++

WORKDIR /app/server

COPY SillyInnkeeper/server ./

RUN yarn install
RUN yarn build

# Stage 3: Production Runtime
FROM node:24-alpine

# Install runtime dependencies
RUN apk add --no-cache \
shadow \
python3 \
make \
g++ \
su-exec

RUN corepack enable && corepack prepare yarn@4.12.0 --activate

WORKDIR /app

# Copy server package files and install production dependencies
COPY SillyInnkeeper/server/package.json SillyInnkeeper/server/yarn.lock ./
RUN NODE_ENV=production yarn install

# Copy built artifacts
COPY --from=server-builder /app/server/dist ./server/dist
COPY --from=client-builder /app/client/dist ./client/dist

# Create data directory
RUN mkdir -p /app/data && chown node:node /app/data

# Environment variables
ENV NODE_ENV=production \
INNKEEPER_HOST=0.0.0.0 \
INNKEEPER_PORT=48912

EXPOSE 48912

# Create entrypoint script
RUN echo '#!/bin/sh' > /entrypoint.sh && \
echo 'PUID=${PUID:-1000}' >> /entrypoint.sh && \
echo 'PGID=${PGID:-1000}' >> /entrypoint.sh && \
echo 'echo "Running as UID:GID $PUID:$PGID"' >> /entrypoint.sh && \
echo 'groupmod -o -g "$PGID" node' >> /entrypoint.sh && \
echo 'usermod -o -u "$PUID" node' >> /entrypoint.sh && \
echo 'chown -R node:node /app/data' >> /entrypoint.sh && \
echo 'exec su-exec node node server/dist/server.js' >> /entrypoint.sh && \
chmod +x /entrypoint.sh

ENTRYPOINT ["/entrypoint.sh"]

17 changes: 17 additions & 0 deletions compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
services:
sillyinnkeeper:
image: sillyinnkeeper:latest
build:
pull: true
context: .
pull_policy: build
container_name: sillyinnkeeper
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=UTC
volumes:
- /path/to/appdata:/app/data
ports:
- 48912:48912
restart: unless-stopped
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "SillyInnkeeper",
"version": "0.2.0",
"version": "0.3.0",
"description": "Test",
"repository": "https://github.com/dmitryplyaskin/SillyInnkeeper",
"author": "Dmitry Plyaskin",
Expand Down