From e3a1f35c67645981172d274f27cd7581c803d0a9 Mon Sep 17 00:00:00 2001 From: George Wilkinson Date: Tue, 23 Sep 2025 17:52:11 +0000 Subject: [PATCH 1/2] Delete duplicate ci.yml --- ci.yml | 118 --------------------------------------------------------- 1 file changed, 118 deletions(-) delete mode 100644 ci.yml diff --git a/ci.yml b/ci.yml deleted file mode 100644 index 99d5543..0000000 --- a/ci.yml +++ /dev/null @@ -1,118 +0,0 @@ -name: CI - -on: - push: - branches: [ "main" ] - pull_request: - branches: [ "main" ] - -permissions: - contents: read - -env: - PYTHON_VERSION: "3.11" - # Used by tests / alembic; matches docker-compose-style DSN - TEST_POSTGRES_DSN: postgresql+asyncpg://postgres:postgres@localhost:5432/keywarden - -jobs: - lint: - name: Lint & Format - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: ${{ env.PYTHON_VERSION }} - - - name: Install linters - run: | - python -m pip install --upgrade pip - pip install ruff==0.6.4 black==24.8.0 - - - name: Ruff (lint) - run: ruff check . - - - name: Black (format check) - run: black --check . - - test: - name: Tests (Pytest + Alembic + Postgres) - runs-on: ubuntu-latest - needs: lint - services: - postgres: - image: postgres:16 - env: - POSTGRES_DB: keywarden - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres - ports: - - 5432:5432 - options: >- - --health-cmd="pg_isready -U postgres -d keywarden" - --health-interval=10s - --health-timeout=5s - --health-retries=10 - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: ${{ env.PYTHON_VERSION }} - - - name: Cache pip - uses: actions/cache@v4 - with: - path: ~/.cache/pip - key: pip-${{ runner.os }}-${{ env.PYTHON_VERSION }}-${{ hashFiles('**/requirements.txt') }} - restore-keys: | - pip-${{ runner.os }}-${{ env.PYTHON_VERSION }}- - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -r requirements.txt - - - name: Create .env for tests - run: | - printf "KEYWARDEN_POSTGRES_DSN=%s\nKEYWARDEN_SECRET_KEY=%s\nKEYWARDEN_ACCESS_TOKEN_EXPIRE_MINUTES=60\n" \ - "${{ env.TEST_POSTGRES_DSN }}" "testsecret" > .env - echo "Wrote .env with DSN=${{ env.TEST_POSTGRES_DSN }}" - - - name: Run Alembic migrations - env: - KEYWARDEN_POSTGRES_DSN: ${{ env.TEST_POSTGRES_DSN }} - run: | - alembic upgrade head - - - name: Pytest - env: - KEYWARDEN_POSTGRES_DSN: ${{ env.TEST_POSTGRES_DSN }} - run: | - pytest -q - - docker-build: - name: Docker Build - runs-on: ubuntu-latest - needs: test - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Build image (no push) - uses: docker/build-push-action@v5 - with: - context: . - push: false - tags: keywarden:ci - # speeds up builds by caching layers on GH Actions - cache-from: type=gha - cache-to: type=gha,mode=max \ No newline at end of file From e29ec19122faac635098abfa7cca534ad5700499 Mon Sep 17 00:00:00 2001 From: George Wilkinson Date: Tue, 23 Sep 2025 17:53:07 +0000 Subject: [PATCH 2/2] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a6a4397..eba8dbf 100644 --- a/README.md +++ b/README.md @@ -27,9 +27,11 @@ Keywarden is a web-based service designed to simplify secure access to Linux ser - Deployment: Docker & Docker Compose 📚 Motivation + SSH is the backbone of secure remote administration, but poor key lifecycle management and lack of auditing create major risks. Enterprise tools like Teleport exist, but are often heavy and complex. Keywarden fills the gap by providing a focused, lightweight, and educational tool for secure SSH access control. 🛠️ Getting Started + There are currently no built artefacts for Keywarden as of 22/09/2025. ```bash # clone the repository