Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6364f37247 | |||
|
|
c9c2fdfae4 | ||
|
|
85d1f71b0e | ||
|
|
b2ca3f25f6 | ||
|
|
8dd0e468f0 | ||
|
|
2318672a75 | ||
|
|
6b3713e58f |
11
Dockerfile
11
Dockerfile
@@ -1,26 +1,21 @@
|
|||||||
# Build the frontend
|
FROM node:23-alpine AS build-frontend
|
||||||
FROM node:22-alpine AS build-frontend
|
|
||||||
|
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
|
|
||||||
# Copy required source files
|
|
||||||
COPY --chown=node:node *.json .
|
COPY --chown=node:node *.json .
|
||||||
COPY --chown=node:node *.js .
|
COPY --chown=node:node *.js .
|
||||||
COPY --chown=node:node src/frontend ./src/frontend
|
COPY --chown=node:node src/frontend ./src/frontend
|
||||||
|
|
||||||
# Fix permissions and install NodeJS deps
|
|
||||||
USER root
|
USER root
|
||||||
RUN chown -R node:node /src
|
RUN chown -R node:node /src
|
||||||
USER node
|
USER node
|
||||||
RUN npm install --omit=dev && \
|
RUN npm install --omit=dev && \
|
||||||
npm run build-frontend
|
npm run build-frontend
|
||||||
|
|
||||||
# Main app build
|
|
||||||
FROM python:3.13-alpine
|
FROM python:3.13-alpine
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Install system dependencies
|
|
||||||
RUN apk add --no-cache \
|
RUN apk add --no-cache \
|
||||||
gcc \
|
gcc \
|
||||||
musl-dev \
|
musl-dev \
|
||||||
@@ -28,19 +23,15 @@ RUN apk add --no-cache \
|
|||||||
libffi-dev \
|
libffi-dev \
|
||||||
openssl-dev
|
openssl-dev
|
||||||
|
|
||||||
# Create config directories with proper permissions
|
|
||||||
RUN mkdir -p /config/.reticulum /config/.meshchat && \
|
RUN mkdir -p /config/.reticulum /config/.meshchat && \
|
||||||
chown -R 1000:1000 /config
|
chown -R 1000:1000 /config
|
||||||
|
|
||||||
# Install Python deps
|
|
||||||
COPY --chown=1000:1000 ./requirements.txt .
|
COPY --chown=1000:1000 ./requirements.txt .
|
||||||
RUN pip install --no-cache-dir -r requirements.txt
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
|
|
||||||
# Create public directory and copy frontend
|
|
||||||
RUN mkdir -p /app/public
|
RUN mkdir -p /app/public
|
||||||
COPY --from=build-frontend --chown=1000:1000 /src/public/ /app/public/
|
COPY --from=build-frontend --chown=1000:1000 /src/public/ /app/public/
|
||||||
|
|
||||||
# Copy other required source files
|
|
||||||
COPY --chown=1000:1000 *.py .
|
COPY --chown=1000:1000 *.py .
|
||||||
COPY --chown=1000:1000 src/__init__.py ./src/__init__.py
|
COPY --chown=1000:1000 src/__init__.py ./src/__init__.py
|
||||||
COPY --chown=1000:1000 src/backend ./src/backend
|
COPY --chown=1000:1000 src/backend ./src/backend
|
||||||
|
|||||||
15
README.md
15
README.md
@@ -1,14 +1,15 @@
|
|||||||
# Ivans Fork Edition
|
# Ivans Custom Fork Edition
|
||||||
|
|
||||||
|
highly experimental and customized, only use if you live on the edge.
|
||||||
|
|
||||||
## Changes
|
## Changes
|
||||||
|
|
||||||
- Drop unnecassary permissions (compose)
|
- Drop unnecassary permissions (docker compose)
|
||||||
- Rootless (user 1000:1000)
|
- Rootless Docker (user 1000:1000)
|
||||||
- Resource Limits (compose)
|
- Resource Limits (docker compose)
|
||||||
- Alpine Image Variants.
|
- Alpine Image Variants for Dockerfile.
|
||||||
- Updated Dependencies.
|
|
||||||
- Dark mode by default.
|
- Dark mode by default.
|
||||||
- Python 3.13 and Node 20.
|
- Python 3.13 and Node 23.
|
||||||
- Ruff formatting and fixes.
|
- Ruff formatting and fixes.
|
||||||
|
|
||||||
## Security
|
## Security
|
||||||
|
|||||||
800
package-lock.json
generated
800
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
10
package.json
10
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "reticulum-meshchat",
|
"name": "reticulum-meshchat",
|
||||||
"version": "1.22.2",
|
"version": "2.0.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "electron/main.js",
|
"main": "electron/main.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
},
|
},
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=22"
|
"node": ">=23"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"electron": "^30.0.8",
|
"electron": "^30.0.8",
|
||||||
@@ -70,7 +70,11 @@
|
|||||||
},
|
},
|
||||||
"linux": {
|
"linux": {
|
||||||
"artifactName": "ReticulumMeshChat-v${version}-${os}.${ext}",
|
"artifactName": "ReticulumMeshChat-v${version}-${os}.${ext}",
|
||||||
"target": "AppImage",
|
"target": [
|
||||||
|
"AppImage"
|
||||||
|
],
|
||||||
|
"category": "Network",
|
||||||
|
"icon": "electron/build/icon.png",
|
||||||
"extraFiles": [
|
"extraFiles": [
|
||||||
{
|
{
|
||||||
"from": "build/exe",
|
"from": "build/exe",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
aiohttp>=3.11.18
|
aiohttp>=3.11.18
|
||||||
cx_freeze>=7.0.0
|
cx_freeze>=7.0.0
|
||||||
lxmf>=0.6.3
|
lxmf>=0.8.0
|
||||||
peewee>=3.18.1
|
peewee>=3.18.1
|
||||||
rns>=0.9.5
|
rns>=1.0.0
|
||||||
websockets>=15.0.1
|
websockets>=15.0.1
|
||||||
2
setup.py
2
setup.py
@@ -2,7 +2,7 @@ from cx_Freeze import setup, Executable
|
|||||||
|
|
||||||
setup(
|
setup(
|
||||||
name="ReticulumMeshChat",
|
name="ReticulumMeshChat",
|
||||||
version="1.0.0",
|
version="2.0.0",
|
||||||
description="A simple mesh network communications app powered by the Reticulum Network Stack",
|
description="A simple mesh network communications app powered by the Reticulum Network Stack",
|
||||||
executables=[
|
executables=[
|
||||||
Executable(
|
Executable(
|
||||||
|
|||||||
Reference in New Issue
Block a user