mirror of
https://github.com/nkanaev/yarr.git
synced 2025-05-25 05:29:20 +00:00
Compare commits
6 Commits
88ed1de58b
...
a51da7b8ec
Author | SHA1 | Date | |
---|---|---|---|
|
a51da7b8ec | ||
|
33503f7896 | ||
|
da569b3321 | ||
|
11285e4af0 | ||
|
9fe02931d8 | ||
|
e4f9dc8c72 |
@ -1,10 +1,12 @@
|
|||||||
name: Publish Docker Image
|
name: Publish Docker Image
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
tags: [ 'v*.*.*', 'v*.*', 'v*', 'latest' ]
|
tags:
|
||||||
|
- v*
|
||||||
env:
|
env:
|
||||||
REGISTRY: ghcr.io
|
REGISTRY: ghcr.io
|
||||||
IMAGE_NAME: nkanaev/yarr
|
IMAGE_NAME: nkanaev/yarr
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-and-push-image:
|
build-and-push-image:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -13,10 +15,10 @@ jobs:
|
|||||||
packages: write
|
packages: write
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Log in to the Container registry
|
- name: Log in to the Container registry
|
||||||
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
registry: ${{ env.REGISTRY }}
|
registry: ${{ env.REGISTRY }}
|
||||||
username: ${{ github.actor }}
|
username: ${{ github.actor }}
|
||||||
@ -24,12 +26,12 @@ jobs:
|
|||||||
|
|
||||||
- name: Extract Docker metadata
|
- name: Extract Docker metadata
|
||||||
id: meta
|
id: meta
|
||||||
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
|
uses: docker/metadata-action@v5
|
||||||
with:
|
with:
|
||||||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||||
|
|
||||||
- name: Build and push Docker image
|
- name: Build and push Docker image
|
||||||
uses: docker/build-push-action@ac9327eae2b366085ac7f6a2d02df8aa8ead720a
|
uses: docker/build-push-action@v6
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
file: ./etc/dockerfile
|
file: ./etc/dockerfile
|
@ -4,6 +4,7 @@
|
|||||||
- (new) editable feed link (thanks to @adaszko)
|
- (new) editable feed link (thanks to @adaszko)
|
||||||
- (new) switch to feed by clicking the title in the article page (thanks to @tarasglek for suggestion)
|
- (new) switch to feed by clicking the title in the article page (thanks to @tarasglek for suggestion)
|
||||||
- (new) support multiple media links
|
- (new) support multiple media links
|
||||||
|
- (new) next/prev article navigation buttons (thanks to @tillcash)
|
||||||
- (fix) duplicate articles caused by the same feed addition (thanks to @adaszko)
|
- (fix) duplicate articles caused by the same feed addition (thanks to @adaszko)
|
||||||
- (fix) relative article links (thanks to @adazsko for the report)
|
- (fix) relative article links (thanks to @adazsko for the report)
|
||||||
- (fix) atom article links stored in id element (thanks to @adazsko for the report)
|
- (fix) atom article links stored in id element (thanks to @adazsko for the report)
|
||||||
@ -17,6 +18,7 @@
|
|||||||
- (etc) load external images with no-referrer policy (thanks to @tillcash for the report)
|
- (etc) load external images with no-referrer policy (thanks to @tillcash for the report)
|
||||||
- (etc) open external links with no-referrer policy (thanks to @donovanglover)
|
- (etc) open external links with no-referrer policy (thanks to @donovanglover)
|
||||||
- (etc) show article content in the list if title is missing (thanks to @asimpson for suggestion)
|
- (etc) show article content in the list if title is missing (thanks to @asimpson for suggestion)
|
||||||
|
- (etc) accessibility improvements (thanks to @tseykovets)
|
||||||
|
|
||||||
# v2.4 (2023-08-15)
|
# v2.4 (2023-08-15)
|
||||||
|
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
FROM golang:alpine3.18 AS build
|
FROM golang:alpine3.21 AS build
|
||||||
RUN apk add build-base git
|
RUN apk add build-base git
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/root/go/pkg \
|
RUN --mount=type=cache,target=/root/.cache/go-build \
|
||||||
|
--mount=type=cache,target=/root/go/pkg \
|
||||||
make host
|
make host
|
||||||
|
|
||||||
FROM alpine:latest
|
FROM alpine:latest
|
||||||
RUN apk add --no-cache ca-certificates && \
|
RUN apk add --no-cache ca-certificates && update-ca-certificates
|
||||||
update-ca-certificates
|
|
||||||
COPY --from=build /src/out/yarr /usr/local/bin/yarr
|
COPY --from=build /src/out/yarr /usr/local/bin/yarr
|
||||||
EXPOSE 7070
|
EXPOSE 7070
|
||||||
ENTRYPOINT ["/usr/local/bin/yarr"]
|
ENTRYPOINT ["/usr/local/bin/yarr"]
|
||||||
|
@ -12,9 +12,9 @@ RUN env DEBIAN_FRONTEND=noninteractive \
|
|||||||
apt install -y qemu-user qemu-user-static
|
apt install -y qemu-user qemu-user-static
|
||||||
|
|
||||||
# Install Golang
|
# Install Golang
|
||||||
RUN wget --quiet https://go.dev/dl/go1.18.2.linux-amd64.tar.gz && \
|
RUN wget --quiet https://go.dev/dl/go1.24.1.linux-amd64.tar.gz && \
|
||||||
rm -rf /usr/local/go && \
|
rm -rf /usr/local/go && \
|
||||||
tar -C /usr/local -xzf go1.18.2.linux-amd64.tar.gz
|
tar -C /usr/local -xzf go1.24.1.linux-amd64.tar.gz
|
||||||
ENV PATH=$PATH:/usr/local/go/bin
|
ENV PATH=$PATH:/usr/local/go/bin
|
||||||
|
|
||||||
# Copy source code
|
# Copy source code
|
||||||
|
2
makefile
2
makefile
@ -1,4 +1,4 @@
|
|||||||
VERSION=2.4
|
VERSION=2.5
|
||||||
GITHASH=$(shell git rev-parse --short=8 HEAD)
|
GITHASH=$(shell git rev-parse --short=8 HEAD)
|
||||||
|
|
||||||
GO_TAGS = sqlite_foreign_keys sqlite_json
|
GO_TAGS = sqlite_foreign_keys sqlite_json
|
||||||
|
20
readme.md
20
readme.md
@ -9,21 +9,21 @@ The app is a single binary with an embedded database (SQLite).
|
|||||||
|
|
||||||
## usage
|
## usage
|
||||||
|
|
||||||
The latest prebuilt binaries for Linux/MacOS/Windows AMD64 are available
|
The latest prebuilt binaries for Linux/MacOS/Windows are available
|
||||||
[here](https://github.com/nkanaev/yarr/releases/latest). Installation instructions:
|
[here](https://github.com/nkanaev/yarr/releases/latest).
|
||||||
|
The archives follow the naming convention `yarr_{OS}_{ARCH}[_gui].zip`, where:
|
||||||
|
|
||||||
* MacOS
|
* `OS` corresponds to the target operating system (darwin/linux/windows for Linux, MacOS, Windows, respectively)
|
||||||
|
* `ARCH` is the CPU architecture (`arm64` for AMD64/Aarch64, `amd64` for X86-64)
|
||||||
|
* `-gui` indicates that the application ships with the GUI (tray icon), and is a command line application if omitted
|
||||||
|
|
||||||
Download `yarr-*-macos64.zip`, unzip it, place `yarr.app` in `/Applications` folder, [open the app][macos-open], click the anchor menu bar icon, select "Open".
|
Usage instructions:
|
||||||
|
|
||||||
* Windows
|
* MacOS: place `yarr.app` in `/Applications` folder, [open the app][macos-open], click the anchor menu bar icon, select "Open".
|
||||||
|
|
||||||
Download `yarr-*-windows64.zip`, unzip it, open `yarr.exe`, click the anchor system tray icon, select "Open".
|
* Windows: open `yarr.exe`, click the anchor system tray icon, select "Open".
|
||||||
|
|
||||||
* Linux
|
* Linux: place `yarr` in `$HOME/.local/bin` and run [the script](etc/install-linux.sh).
|
||||||
|
|
||||||
Download `yarr-*-linux64.zip`, unzip it, place `yarr` in `$HOME/.local/bin`
|
|
||||||
and run [the script](etc/install-linux.sh).
|
|
||||||
|
|
||||||
[macos-open]: https://support.apple.com/en-gb/guide/mac-help/mh40616/mac
|
[macos-open]: https://support.apple.com/en-gb/guide/mac-help/mh40616/mac
|
||||||
|
|
||||||
|
@ -365,7 +365,7 @@
|
|||||||
<div v-if="contentImages.length">
|
<div v-if="contentImages.length">
|
||||||
<figure v-for="media in contentImages">
|
<figure v-for="media in contentImages">
|
||||||
<img :src="media.url" loading="lazy">
|
<img :src="media.url" loading="lazy">
|
||||||
<figcaption v-if="media.description" v-html="media.description"></figcaption>
|
<figcaption v-if="media.description">{{ media.description }}</figcaption>
|
||||||
</figure>
|
</figure>
|
||||||
</div>
|
</div>
|
||||||
<audio class="w-100" controls v-for="media in contentAudios" :src="media.url"></audio>
|
<audio class="w-100" controls v-for="media in contentAudios" :src="media.url"></audio>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user