Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restrict internet access from siren container #286

Open
wants to merge 60 commits into
base: stable
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
4141c17
v2.0.0 (#263)
rickimoore Jul 11, 2024
b9476ca
don't use a keyfile for ssl cert (#265)
antondlr Jul 18, 2024
e1425ad
Clean slate stable (#267)
rickimoore Jul 24, 2024
a39f264
Restrict egress on siren container
magick93 Dec 13, 2024
fc6ae1a
siren container w/ no internet
magick93 Dec 15, 2024
ff3abc8
Enhance security and stability of docker-compose configuration
magick93 Dec 15, 2024
7a111b0
Update docker-compose to include BN_TARGET and VC_TARGET environment …
magick93 Dec 15, 2024
f032c1e
Update nginx proxy configuration to use BN_TARGET and VC_TARGET varia…
magick93 Dec 15, 2024
d0b9b21
Remove non-root user configuration from nginx-proxy service in docker…
magick93 Dec 15, 2024
e61f51f
Refactor nginx proxy configuration to use upstream blocks for BN_TARG…
magick93 Dec 15, 2024
e15cf87
Update nginx proxy configuration file path in docker-compose
magick93 Dec 16, 2024
3d22810
Update BN_TARGET and VC_TARGET environment variables to use placehold…
magick93 Dec 16, 2024
0fa9a88
Update README to include BN_TARGET and VC_TARGET configuration instru…
magick93 Dec 16, 2024
910e64e
Update docker-compose to configure SSL and use environment variables …
magick93 Dec 16, 2024
45b78c5
Update README to remove outdated BN_TARGET and VC_TARGET configuratio…
magick93 Dec 16, 2024
69224d1
switch to alpine-based nginx container
antondlr Dec 16, 2024
efef6d5
dont expose port 80, containers in same network can access regardless
antondlr Dec 16, 2024
104f010
update ssl config
antondlr Dec 16, 2024
58757e3
Update README to reflect correct URL
magick93 Dec 16, 2024
190ecd6
[Alpine] Change command in docker-compose to use /bin/sh instead of /…
magick93 Dec 16, 2024
40ef91e
Add DNS resolver configuration for beacon node and validator client p…
magick93 Dec 16, 2024
ccff867
upload signatures right next to binaries (#223)
antondlr Sep 28, 2023
6a90521
Feat/proposer duties (#226)
rickimoore Nov 2, 2023
b77c448
Fix: node upgrade (#227)
rickimoore Mar 2, 2024
b1c3afd
Feat: ssr refactor (#232)
rickimoore Jun 20, 2024
0becf78
fix: remove storybook components and dependencies (#237)
rickimoore Jun 24, 2024
0b7256f
Fix workflows (#240)
antondlr Jun 24, 2024
eca34cc
add error handling to startup logic (#239)
antondlr Jun 24, 2024
2e7157f
fix: dynamic server (#244)
rickimoore Jun 25, 2024
6791ead
Fix: prune deps (#242)
rickimoore Jun 25, 2024
7821afe
overhaul config (.env / env vars) mechanism
antondlr Jun 25, 2024
3b872e8
add docker-compose (#243)
antondlr Jun 25, 2024
e0cb480
remove dev dockerfile
antondlr Jun 25, 2024
aa37da1
Fix: debug logs (#245)
rickimoore Jun 25, 2024
d92383a
Update README.md
antondlr Jun 26, 2024
119fd09
switch to phat node image for prod
antondlr Jun 26, 2024
975046d
Fix: readme (#247)
rickimoore Jun 26, 2024
397013c
fix: proposer duties error response (#248)
rickimoore Jun 26, 2024
a853d59
Fix/light mode (#249)
rickimoore Jun 26, 2024
e412afd
install netcat, amend connectivity test
antondlr Jun 27, 2024
b7b9fd4
Fix: prod build (#250)
rickimoore Jun 27, 2024
c0d7332
version bump
antondlr Jun 27, 2024
b88330d
Rename auth variables (#252)
AgeManning Jul 1, 2024
a4ca5c4
Fix some typos (#257)
AgeManning Jul 4, 2024
071b824
add docker hub instructions to release template (#260)
antondlr Jul 11, 2024
0eac8c8
don't use a keyfile for ssl cert
antondlr Jul 16, 2024
32f4d1c
Feat: Enable Deposits (#268)
rickimoore Dec 10, 2024
5569384
fix dockerhub login
antondlr Dec 10, 2024
7cb2022
Fix: code cleanup (#284)
rickimoore Dec 11, 2024
26331d1
fix: env ports (#273)
rickimoore Dec 12, 2024
6e21958
Fix/deposit json (#282)
rickimoore Dec 16, 2024
ad63b52
Fix: format checksum address (#283)
rickimoore Dec 16, 2024
03be39a
Fix: participation rate accuracy (#285)
rickimoore Dec 16, 2024
769f142
Fix:build fix deposits (#287)
rickimoore Dec 16, 2024
c9b515f
Add SSL certificate generation and update docker-compose for cert-ini…
magick93 Dec 18, 2024
01dd140
Update README with Docker Compose usage instructions and SSL access n…
magick93 Dec 18, 2024
21a6ea6
Merge branch 'stable' into dc-enhance
magick93 Dec 19, 2024
7286b9f
Re-add Running Local Testnet
magick93 Dec 19, 2024
0bdba83
Merge branch 'unstable' into dc-enhance
magick93 Dec 24, 2024
24f6f5c
re-align
magick93 Dec 24, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
node_modules
backend/node_modules
14 changes: 9 additions & 5 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
PORT=
ELECTRON_START_URL=
APPLE_ID=YOUR-APPLE-ID
APPLE_PASSWORD=APP-SPECIFIC-PASSWORD
APPLE_TEAM_ID=YOUR-TEAM-ID
BEACON_URL=http://your-BN-ip:5052
VALIDATOR_URL=http://your-VC-ip:5062
API_TOKEN=get-it-from-'.lighthouse/validators/api-token.txt'
SESSION_PASSWORD=default-siren-password
SSL_ENABLED=true
DEBUG=false
# don't change these when building the docker image, only change when running outside of docker
PORT=3000
BACKEND_URL=http://127.0.0.1:3001
1 change: 0 additions & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
src/main.js
src/scripts/release.js
60 changes: 25 additions & 35 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -1,39 +1,29 @@
{
"env": {
"browser": true,
"es2021": true
},
"extends": [
"eslint:recommended",
"plugin:react/recommended",
"plugin:@typescript-eslint/recommended",
"prettier"
],
"overrides": [
"plugins": ["@typescript-eslint", "import", "react-hooks", "unused-imports"],
"extends": ["next/core-web-vitals"],
"rules": {
"@typescript-eslint/ban-ts-comment": "off",
"import/order": [
"error",
{
"alphabetize": {
"order": "asc",
"caseInsensitive": true
}
}
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
},
"plugins": [
"react",
"@typescript-eslint",
"prettier"
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "off",
"unused-imports/no-unused-imports": "error",
"unused-imports/no-unused-vars": [
"warn",
{
"vars": "all",
"varsIgnorePattern": "^_",
"args": "after-used",
"argsIgnorePattern": "^_"
}
],
"rules": {
"react/react-in-jsx-scope": "off",
"spaced-comment": "error",
"quotes": ["error", "single"],
"no-duplicate-imports": "error",
"react/prop-types": 0,
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }]
},
"settings": {
"import/resolver": {
"typescript": {}
}
}
"react/react-in-jsx-scope": "off"
}
}
18 changes: 10 additions & 8 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ about: Create a report to help us improve
title: ''
labels: bug
assignees: rickimoore

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:

1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
Expand All @@ -24,15 +24,17 @@ A clear and concise description of what you expected to happen.
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]

- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]

**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]

- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]

**Additional context**
Add any other context about the problem here.
1 change: 0 additions & 1 deletion .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: rickimoore

---

**Is your feature request related to a problem? Please describe.**
Expand Down
205 changes: 86 additions & 119 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -1,129 +1,96 @@
name: docker

on:
push:
branches:
- unstable
- stable
tags:
- v*
push:
branches:
- unstable
- stable
tags:
- v*

env:
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
IMAGE_NAME: ${{ secrets.DOCKER_USERNAME }}/siren
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
IMAGE_NAME: ${{ secrets.DOCKER_USERNAME }}/siren

jobs:
# Extract the VERSION which is either `latest` or `vX.Y.Z`, and the VERSION_SUFFIX
# which is either empty or `-unstable`.
#
# It would be nice if the arch didn't get spliced into the version between `latest` and
# `unstable`, but for now we keep the two parts of the version separate for backwards
# compatibility.
extract-version:
runs-on: ubuntu-22.04
steps:
- name: Extract version (if stable)
if: github.event.ref == 'refs/heads/stable'
run: |
echo "VERSION=latest" >> $GITHUB_ENV
echo "VERSION_SUFFIX=" >> $GITHUB_ENV
- name: Extract version (if unstable)
if: github.event.ref == 'refs/heads/unstable'
run: |
echo "VERSION=latest" >> $GITHUB_ENV
echo "VERSION_SUFFIX=-unstable" >> $GITHUB_ENV
- name: Extract version (if tagged release)
if: startsWith(github.event.ref, 'refs/tags')
run: |
echo "VERSION=$(echo ${GITHUB_REF#refs/tags/})" >> $GITHUB_ENV
echo "VERSION_SUFFIX=" >> $GITHUB_ENV
outputs:
VERSION: ${{ env.VERSION }}
VERSION_SUFFIX: ${{ env.VERSION_SUFFIX }}
build-html:
name: build html
runs-on: ubuntu-22.04
needs: [extract-version]
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Use node 18
uses: actions/setup-node@v3
with:
node-version: 18
cache: 'yarn'
- name: Install dependencies
env:
NODE_ENV: development
run: |
yarn
- name: Build Siren
env:
NODE_ENV: production
run: yarn build
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: html
path: build/
# Extract the VERSION which is either `latest` or `vX.Y.Z`, and the VERSION_SUFFIX
# which is either empty or `-unstable`.
#
# It would be nice if the arch didn't get spliced into the version between `latest` and
# `unstable`, but for now we keep the two parts of the version separate for backwards
# compatibility.
extract-version:
runs-on: ubuntu-22.04
steps:
- name: Extract version (if stable)
if: github.event.ref == 'refs/heads/stable'
run: |
echo "VERSION=latest" >> $GITHUB_ENV
echo "VERSION_SUFFIX=" >> $GITHUB_ENV
- name: Extract version (if unstable)
if: github.event.ref == 'refs/heads/unstable'
run: |
echo "VERSION=latest" >> $GITHUB_ENV
echo "VERSION_SUFFIX=-unstable" >> $GITHUB_ENV
- name: Extract version (if tagged release)
if: startsWith(github.event.ref, 'refs/tags')
run: |
echo "VERSION=$(echo ${GITHUB_REF#refs/tags/})" >> $GITHUB_ENV
echo "VERSION_SUFFIX=" >> $GITHUB_ENV
outputs:
VERSION: ${{ env.VERSION }}
VERSION_SUFFIX: ${{ env.VERSION_SUFFIX }}

build-docker-single-arch:
name: build-docker-${{ matrix.binary }}
runs-on: ubuntu-22.04
strategy:
matrix:
binary: [aarch64, x86_64]
build-docker-single-arch:
name: build-docker-${{ matrix.binary }}
runs-on: ubuntu-22.04
strategy:
matrix:
binary: [aarch64, x86_64]

needs: [extract-version, build-html]
env:
# We need to enable experimental docker features in order to use `docker buildx`
DOCKER_CLI_EXPERIMENTAL: enabled
VERSION: ${{ needs.extract-version.outputs.VERSION }}
VERSION_SUFFIX: ${{ needs.extract-version.outputs.VERSION_SUFFIX }}
steps:
- uses: actions/checkout@v3
- uses: docker/setup-qemu-action@v2
- name: Dockerhub login
run: |
echo "${DOCKER_PASSWORD}" | docker login --username ${DOCKER_USERNAME} --password-stdin
- name: Map aarch64 to arm64 short arch
if: startsWith(matrix.binary, 'aarch64')
run: echo "SHORT_ARCH=arm64" >> $GITHUB_ENV
- name: Map x86_64 to amd64 short arch
if: startsWith(matrix.binary, 'x86_64')
run: echo "SHORT_ARCH=amd64" >> $GITHUB_ENV;
- name: Download artifacts
uses: actions/download-artifact@v3
with:
name: html
path: html/
- name: Build Dockerfile and push
run: |
docker buildx build \
--platform=linux/${SHORT_ARCH} \
--file ./Dockerfile.release . \
--tag ${IMAGE_NAME}:${VERSION}-${SHORT_ARCH}${VERSION_SUFFIX} \
--provenance=false \
--push

build-docker-multiarch:
name: build-docker-multiarch
runs-on: ubuntu-22.04
needs: [build-docker-single-arch, extract-version]
env:
# We need to enable experimental docker features in order to use `docker manifest`
DOCKER_CLI_EXPERIMENTAL: enabled
VERSION: ${{ needs.extract-version.outputs.VERSION }}
VERSION_SUFFIX: ${{ needs.extract-version.outputs.VERSION_SUFFIX }}
steps:
- name: Dockerhub login
run: |
echo "${DOCKER_PASSWORD}" | docker login --username ${DOCKER_USERNAME} --password-stdin
- name: Create and push multiarch manifest
run: |
docker manifest create ${IMAGE_NAME}:${VERSION}${VERSION_SUFFIX} \
--amend ${IMAGE_NAME}:${VERSION}-arm64${VERSION_SUFFIX} \
--amend ${IMAGE_NAME}:${VERSION}-amd64${VERSION_SUFFIX};
docker manifest push ${IMAGE_NAME}:${VERSION}${VERSION_SUFFIX}
needs: [extract-version]
env:
# We need to enable experimental docker features in order to use `docker buildx`
DOCKER_CLI_EXPERIMENTAL: enabled
VERSION: ${{ needs.extract-version.outputs.VERSION }}
VERSION_SUFFIX: ${{ needs.extract-version.outputs.VERSION_SUFFIX }}
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- name: Dockerhub login
run: |
echo "${DOCKER_PASSWORD}" | docker login --username ${DOCKER_USERNAME} --password-stdin
- name: Map aarch64 to arm64 short arch
if: startsWith(matrix.binary, 'aarch64')
run: echo "SHORT_ARCH=arm64" >> $GITHUB_ENV
- name: Map x86_64 to amd64 short arch
if: startsWith(matrix.binary, 'x86_64')
run: echo "SHORT_ARCH=amd64" >> $GITHUB_ENV;
- name: Build Dockerfile and push
run: |
docker buildx build \
--platform=linux/${SHORT_ARCH} \
--file ./Dockerfile . \
--tag ${IMAGE_NAME}:${VERSION}-${SHORT_ARCH}${VERSION_SUFFIX} \
--push

build-docker-multiarch:
name: build-docker-multiarch
runs-on: ubuntu-22.04
needs: [build-docker-single-arch, extract-version]
env:
# We need to enable experimental docker features in order to use `docker manifest`
DOCKER_CLI_EXPERIMENTAL: enabled
VERSION: ${{ needs.extract-version.outputs.VERSION }}
VERSION_SUFFIX: ${{ needs.extract-version.outputs.VERSION_SUFFIX }}
steps:
- name: Dockerhub login
run: |
echo "${DOCKER_PASSWORD}" | docker login --username ${DOCKER_USERNAME} --password-stdin
- name: Create and push multiarch manifest
run: |
docker manifest create ${IMAGE_NAME}:${VERSION}${VERSION_SUFFIX} \
--amend ${IMAGE_NAME}:${VERSION}-arm64${VERSION_SUFFIX} \
--amend ${IMAGE_NAME}:${VERSION}-amd64${VERSION_SUFFIX};
docker manifest push ${IMAGE_NAME}:${VERSION}${VERSION_SUFFIX}
Loading