-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
160 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,9 @@ | ||
# For Litestream | ||
LITESTREAM_ACCESS_KEY_ID=000000001a2b3c40000000001 | ||
LITESTREAM_SECRET_ACCESS_KEY=K000ABCDEFGHiJkLmNoPqRsTuVwXyZ0 | ||
LITESTREAM_REPLICA_BUCKET=xxxxxxxxx | ||
LITESTREAM_REPLICA_ENDPOINT=s3.us-west-000.backblazeb2.com | ||
LITESTREAM_REPLICA_PATH=memos_prod.db | ||
LITESTREAM_REPLICA_PATH=memos_prod.db | ||
# For Memogram | ||
MEMOGRAM_SERVER_ADDR=dns:localhost:5230 | ||
MEMOGRAM_BOT_TOKEN=your_telegram_bot_token |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
61 changes: 61 additions & 0 deletions
61
.github/workflows/get-build-stable-artifacts-with-memogram-and-push-image.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
name: get-build-stable-artifacts-with-memogram-and-push-image | ||
|
||
on: | ||
push: | ||
paths: | ||
- 'Dockerfile.memogram' | ||
- 'scripts/run.sh' | ||
workflow_dispatch: | ||
|
||
jobs: | ||
build-and-push-release-image: | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: read | ||
packages: write | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Set up QEMU | ||
uses: docker/setup-qemu-action@v3 | ||
|
||
- name: Extract build args | ||
id: keydb | ||
uses: pozetroninc/github-action-get-latest-release@v0.8.0 | ||
with: | ||
owner: usememos | ||
repo: memos | ||
excludes: prerelease, draft | ||
token: ${{ github.token }} | ||
|
||
- name: Login to GitHub Container Registry | ||
uses: docker/login-action@v3 | ||
with: | ||
registry: ghcr.io | ||
username: ${{ github.actor }} | ||
password: ${{ github.token }} | ||
|
||
- name: Set up Docker Buildx | ||
id: buildx | ||
uses: docker/setup-buildx-action@v3 | ||
|
||
- name: Docker meta | ||
id: meta | ||
uses: docker/metadata-action@v5 | ||
with: | ||
images: | | ||
ghcr.io/hu3rror/memos-litestream | ||
tags: | | ||
type=raw,value=stable-memogram | ||
type=semver,pattern={{version}},value=${{ steps.keydb.outputs.release }}-memogram | ||
- name: Build and Push | ||
id: docker_build | ||
uses: docker/build-push-action@v5 | ||
with: | ||
context: ./ | ||
file: ./Dockerfile.memogram | ||
platforms: linux/amd64,linux/arm64 | ||
push: true | ||
tags: ${{ steps.meta.outputs.tags }} | ||
labels: ${{ steps.meta.outputs.labels }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
# Set the Litestream image tag | ||
ARG LITESTREAM_IMAGE_TAG=0.3.13 | ||
# Set the Memos image tag | ||
ARG MEMOS_IMAGE_TAG=0.22.0 | ||
|
||
# Build Litestream | ||
FROM docker.io/litestream/litestream:${LITESTREAM_IMAGE_TAG} AS litestream_upstream | ||
# Set the entry point to an empty array | ||
ENTRYPOINT [] | ||
|
||
# Build Memos | ||
FROM ghcr.io/usememos/memos:${MEMOS_IMAGE_TAG} AS memos_upstream | ||
# Set the entry point to an empty array | ||
ENTRYPOINT [] | ||
|
||
# Final image | ||
FROM ubuntu:latest as final | ||
# Set the working directory to /usr/local/memos | ||
WORKDIR /usr/local/memos | ||
|
||
# Update apt and install necessary software | ||
RUN apt-get update && apt-get install -y wget tzdata tmux curl bash | ||
# Set the timezone to UTC | ||
ENV TZ="UTC" | ||
|
||
# Copy Memos to /usr/local/memos | ||
COPY --from=memos_upstream /usr/local/memos/ /usr/local/memos/ | ||
|
||
# Copy Litestream to /usr/local/bin | ||
COPY --from=litestream_upstream /usr/local/bin/litestream /usr/local/bin/litestream | ||
|
||
# Set the target architecture | ||
ARG TARGETARCH | ||
|
||
# Download Memogram | ||
ENV MEMOGRAM_TAG=0.1.1 | ||
RUN wget https://github.com/usememos/telegram-integration/releases/download/v${MEMOGRAM_TAG}/memogram_v${MEMOGRAM_TAG}_linux_${TARGETARCH}.tar.gz && \ | ||
tar -xvf memogram_v${MEMOGRAM_TAG}_linux_${TARGETARCH}.tar.gz && \ | ||
rm memogram_v${MEMOGRAM_TAG}_linux_${TARGETARCH}.tar.gz README.md && \ | ||
chown root:root /usr/local/memos/memogram && \ | ||
chmod +x /usr/local/memos/memogram | ||
|
||
# Download overmind | ||
ENV OVERMIND_VERSION=2.5.1 | ||
RUN wget https://github.com/DarthSim/overmind/releases/download/v${OVERMIND_VERSION}/overmind-v${OVERMIND_VERSION}-linux-${TARGETARCH}.gz && \ | ||
gzip -d overmind-v${OVERMIND_VERSION}-linux-${TARGETARCH}.gz && \ | ||
mv overmind-v${OVERMIND_VERSION}-linux-${TARGETARCH} overmind && \ | ||
chmod +x overmind | ||
|
||
# Copy Memogram environment file | ||
COPY etc/memogram.env /usr/local/memos/.env | ||
|
||
# Copy Litestream global configuration file | ||
COPY etc/litestream.yml /etc/litestream.yml | ||
|
||
# Copy startup script and make it executable | ||
COPY scripts/run.sh /usr/local/memos/run.sh | ||
RUN chmod +x /usr/local/memos/run.sh | ||
|
||
# Copy overmind configuration file | ||
COPY etc/Procfile /usr/local/memos/Procfile | ||
|
||
# Define environment variables | ||
ENV DB_PATH="/var/opt/memos/memos_prod.db" | ||
|
||
# Expose port 5230 | ||
EXPOSE 5230 | ||
|
||
# Create a directory to store data, which can be referenced as the mounting point | ||
RUN mkdir -p /var/opt/memos | ||
VOLUME /var/opt/memos | ||
|
||
# Set Memos mode to "prod" and port to 5230 | ||
ENV MEMOS_MODE="prod" | ||
ENV MEMOS_PORT="5230" | ||
|
||
# Run Memos with Litestream (Default WORKDIR is `/usr/local/memos/`) | ||
CMD ["./overmind", "start", "-f", "/usr/local/memos/Procfile"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
memos: ./run.sh | ||
memogram: sleep 5 && ./memogram |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
SERVER_ADDR=dns:localhost:5230 | ||
BOT_TOKEN=<MEMOGRAM_BOT_TOKEN> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters