-
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.
🔧 (server.ts): change port variable case from lowercase to uppercase…
… for consistency 🔧 (server.ts): add support for process.env.PORT environment variable to be able to run app on a configurable port 🔧 (.env.example): add new environment variables for Litestream and Memogram 🚀 (.github/workflows/get-build-stable-artifacts-with-memogram-and-push-image.yml): add new GitHub Actions workflow to build and push Docker images 🚀 (Dockerfile.memogram): add new Dockerfile for Memogram 🔧 (etc/Procfile): add new Procfile for Memogram 🔧 (etc/memogram.env): add new environment file for Memogram 🔧 (scripts/run.sh): add script to replace MEMOGRAM_BOT_TOKEN and MEMOS_PORT in .env file
- Loading branch information
Showing
6 changed files
with
166 additions
and
2 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 |
68 changes: 68 additions & 0 deletions
68
.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,68 @@ | ||
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 Docker Hub | ||
uses: docker/login-action@v3 | ||
if: github.event_name != 'pull_request' | ||
with: | ||
username: ${{ secrets.DOCKERHUB_USERNAME }} | ||
password: ${{ secrets.DOCKERHUB_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: | | ||
hu3rror/memos-litestream | ||
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