Remove ignored files

This commit is contained in:
2025-11-11 08:28:44 +00:00
parent 24b0422864
commit a82d0a5396
13 changed files with 240 additions and 25480 deletions

9
.env
View File

@@ -1,9 +0,0 @@
DOCKERDIR=/opt/compose/keywarden
KEYWARDEN_SECRET_KEY=supersecret
KEYWARDEN_DEBUG=False
KEYWARDEN_ALLOWED_HOSTS="https://app.dev.ntbx.io,https://keywarden.dev.ntbx.io,localhost,127.0.0.1"
KEYWARDEN_TRUSTED_ORIGINS="https://keywarden.dev.ntbx.io"
KEYWARDEN_DATABASE_URL=postgres://keywarden:postgres@db:5432/keywarden
KEYWARDEN_OIDC_CLIENT_ID=
KEYWARDEN_OIDC_CLIENT_SECRET=
KEYWARDEN_OIDC_DISCOVERY_ENDPOINT=https://authentik.local/application/o/keywarden/.well-known/openid-configuration

227
.gitignore vendored Normal file
View File

@@ -0,0 +1,227 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[codz]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py.cover
.hypothesis/
.pytest_cache/
cover/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
.pybuilder/
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
# Pipfile.lock
# UV
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# uv.lock
# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
# poetry.lock
# poetry.toml
# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
# pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
# https://pdm-project.org/en/latest/usage/project/#working-with-version-control
# pdm.lock
# pdm.toml
.pdm-python
.pdm-build/
# pixi
# Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
# pixi.lock
# Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
# in the .venv directory. It is recommended not to include this directory in version control.
.pixi
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# Redis
*.rdb
*.aof
*.pid
# RabbitMQ
mnesia/
rabbitmq/
rabbitmq-data/
# ActiveMQ
activemq-data/
# SageMath parsed files
*.sage.py
# Environments
.env
.envrc
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
# pytype static type analyzer
.pytype/
# Cython debug symbols
cython_debug/
# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
# .idea/
# Abstra
# Abstra is an AI-powered process automation framework.
# Ignore directories containing user credentials, local state, and settings.
# Learn more at https://abstra.io/docs
.abstra/
# Visual Studio Code
# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
# that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
# and can be added to the global gitignore or merged into this file. However, if you prefer,
# you could uncomment the following to ignore the entire vscode folder
# .vscode/
# Ruff stuff:
.ruff_cache/
# PyPI configuration file
.pypirc
# Marimo
marimo/_static/
marimo/_lsp/
__marimo__/
# Streamlit
.streamlit/secrets.toml
# Certificates
*.pem
# Docker
*compose.yml
nginx/logs/*
nginx/certs/*.pem
theme/__pycache__/*

View File

@@ -1,35 +0,0 @@
# syntax=docker/dockerfile:1
############################
# Builder (compile wheels) #
############################
FROM python:3.11-slim AS builder
ENV PIP_NO_CACHE_DIR=1
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential gcc libffi-dev libssl-dev libpq-dev pkg-config cargo \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /wheels
COPY requirements.txt ./
RUN python -m pip install --upgrade pip setuptools wheel
# Build/download wheels for all deps
RUN pip wheel --wheel-dir /wheels -r requirements.txt
#######################
# Runtime (slim) #
#######################
FROM python:3.11-slim AS runtime
RUN apt-get update && apt-get install -y --no-install-recommends libpq5 \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=builder /wheels /wheels
COPY requirements.txt ./
# Tell pip to ONLY use wheels from /wheels for the exact versions you built
RUN python -m pip install --no-index --find-links=/wheels -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]

View File

@@ -1,7 +1,7 @@
services:
keywarden-nginx:
container_name: keywarden-nginx
image: nginx:alpine
container_name: keywarden-nginx
restart: unless-stopped
volumes:
- ${DOCKERDIR}/nginx/configs/nginx.conf:/etc/nginx/nginx.conf:ro
@@ -9,7 +9,6 @@ services:
- ${DOCKERDIR}/nginx/certs/:/certs/
- ${DOCKERDIR}/nginx/webdir/:/var/www/
- ${DOCKERDIR}/nginx/logs:/var/log/nginx/
# - "external:internal", change external to desired port
ports:
- "443:443"
@@ -21,16 +20,13 @@ services:
- ALLOW_EMPTY_PASSWORD=yes
keywarden-db:
container_name: keywarden-db
image: postgres:17-alpine
container_name: keywarden-db
environment:
POSTGRES_PASSWORD: ${KEYWARDEN_POSTGRES_PASSWORD:-postgres}
POSTGRES_DB: ${KEYWARDEN_POSTGRES_DB:-keywarden}
POSTGRES_USER: ${KEYWARDEN_POSTGRES_USER:-keywarden}
POSTGRES_PORT: ${KEYWARDEN_POSTGRES_PORT:-5432}
# Do not enable unless debugging, not needed to be exposed outside of docker network
# ports:
# - "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U keywarden -d keywarden"]
interval: 5s
@@ -40,13 +36,11 @@ services:
- "pgdata:/var/lib/postgresql/data"
keywarden:
build: .
image: git.ntbx.io/boris/keywarden:latest
container_name: keywarden
command: gunicorn keywarden.wsgi:application --bind 0.0.0.0:8000
volumes:
- .:/app
ports:
- "8000:8000"
- "8000:80"
depends_on:
- keywarden-db
- keywarden-valkey
@@ -56,17 +50,5 @@ services:
env_file:
- .env
# authentik:
# image: ghcr.io/goauthentik/server
# environment:
# AUTHENTIK_SECRET_KEY: supersecretkey
# AUTHENTIK_POSTGRESQL__HOST: db
# AUTHENTIK_POSTGRESQL__USER: django
# AUTHENTIK_POSTGRESQL__PASSWORD: django
# AUTHENTIK_POSTGRESQL__NAME: authentik
# ports:
# - "9000:9000"
volumes:
pgdata:

183
install
View File

@@ -1,183 +0,0 @@
#!/usr/bin/env bash
# Color definitions
CYAN='\033[0;36m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
PURPLE='\033[0;35m'
RED='\033[0;31m'
BOLD='\033[1m'
DIM='\033[2m'
NC='\033[0m' # No Color
# Fancy header
echo ""
echo -e "${BOLD}Cursor Agent Installer${NC}"
echo ""
# Function to print steps with style
print_step() {
echo -e "${BLUE}▸${NC} ${1}"
}
# Function to print success
print_success() {
# Move cursor up one line and clear it
echo -ne "\033[1A\033[2K"
echo -e "${GREEN}✓${NC} ${1}"
}
# Function to print error
print_error() {
echo -e "${RED}✗${NC} ${1}"
}
# Detect OS and Architecture
print_step "Detecting system architecture..."
# Detect OS
OS="$(uname -s)"
case "${OS}" in
Linux*) OS="linux";;
Darwin*) OS="darwin";;
*)
print_error "Unsupported operating system: ${OS}"
exit 1
;;
esac
# Detect Architecture
ARCH="$(uname -m)"
case "${ARCH}" in
x86_64|amd64) ARCH="x64";;
arm64|aarch64) ARCH="arm64";;
*)
print_error "Unsupported architecture: ${ARCH}"
exit 1
;;
esac
print_success "Detected ${OS}/${ARCH}"
# Installation steps
print_step "Creating installation directory..."
# Create temporary directory for atomic download inside versions folder
TEMP_EXTRACT_DIR="$HOME/.local/share/cursor-agent/versions/.tmp-2025.10.22-f894c20-$(date +%s)"
mkdir -p "${TEMP_EXTRACT_DIR}"
print_success "Directory created"
print_step "Downloading Cursor Agent package..."
DOWNLOAD_URL="https://downloads.cursor.com/lab/2025.10.22-f894c20/${OS}/${ARCH}/agent-cli-package.tar.gz"
echo -e "${DIM} Download URL: ${DOWNLOAD_URL}${NC}"
# Cleanup function
cleanup() {
rm -rf "${TEMP_EXTRACT_DIR}"
}
trap cleanup EXIT
# Download with progress bar and better error handling
if curl -fSL --progress-bar "${DOWNLOAD_URL}" \
| tar --strip-components=1 -xzf - -C "${TEMP_EXTRACT_DIR}"; then
echo -ne "\033[1A\033[2K"
echo -ne "\033[1A\033[2K"
echo -ne "\033[1A\033[2K"
print_success "Package downloaded and extracted"
else
print_error "Download failed. Please check your internet connection and try again."
print_error "If the problem persists, the package might not be available for ${OS}/${ARCH}."
cleanup
exit 1
fi
print_step "Finalizing installation..."
# Atomically move from temp to final destination
FINAL_DIR="$HOME/.local/share/cursor-agent/versions/2025.10.22-f894c20"
rm -rf "${FINAL_DIR}"
if mv "${TEMP_EXTRACT_DIR}" "${FINAL_DIR}"; then
print_success "Package installed successfully"
else
print_error "Failed to install package. Please check permissions."
cleanup
exit 1
fi
print_step "Creating bin directory..."
mkdir -p ~/.local/bin
print_success "Bin directory ready"
print_step "Creating symlink to cursor-agent executable..."
# Remove any existing symlink or file
rm -f ~/.local/bin/cursor-agent
# Create symlink to the cursor-agent executable
ln -s ~/.local/share/cursor-agent/versions/2025.10.22-f894c20/cursor-agent ~/.local/bin/cursor-agent
print_success "Symlink created"
# Success message
echo ""
echo -e "${BOLD}${GREEN}✨ Installation Complete! ${NC}"
echo ""
echo ""
# Determine configured shells
CURRENT_SHELL="$(basename $SHELL)"
SHOW_BASH=false
SHOW_ZSH=false
SHOW_FISH=false
case "${CURRENT_SHELL}" in
bash) SHOW_BASH=true ;;
zsh) SHOW_ZSH=true ;;
fish) SHOW_FISH=true ;;
esac
# Also consider presence of config files as configured
if [ -f "$HOME/.bashrc" ] || [ -f "$HOME/.bash_profile" ]; then SHOW_BASH=true; fi
if [ -f "$HOME/.zshrc" ]; then SHOW_ZSH=true; fi
if [ -f "$HOME/.config/fish/config.fish" ]; then SHOW_FISH=true; fi
# Next steps with style
echo -e "${BOLD}Next Steps${NC}"
echo ""
echo -e "${BOLD}1.${NC} Add ~/.local/bin to your PATH:"
if [ "${SHOW_BASH}" = true ]; then
echo -e " ${DIM}For bash:${NC}"
echo -e " ${BOLD}${BLUE}echo 'export PATH=\"\$HOME/.local/bin:\$PATH\"' >> ~/.bashrc${NC}"
echo -e " ${BOLD}${BLUE}source ~/.bashrc${NC}"
echo ""
fi
if [ "${SHOW_ZSH}" = true ]; then
echo -e " ${DIM}For zsh:${NC}"
echo -e " ${BOLD}${BLUE}echo 'export PATH=\"\$HOME/.local/bin:\$PATH\"' >> ~/.zshrc${NC}"
echo -e " ${BOLD}${BLUE}source ~/.zshrc${NC}"
echo ""
fi
if [ "${SHOW_FISH}" = true ]; then
echo -e " ${DIM}For fish:${NC}"
echo -e " ${BOLD}${BLUE}mkdir -p \$HOME/.config/fish${NC}"
echo -e " ${BOLD}${BLUE}echo 'fish_add_path \$HOME/.local/bin' >> \$HOME/.config/fish/config.fish${NC}"
echo -e " ${BOLD}${BLUE}source \$HOME/.config/fish/config.fish${NC}"
echo ""
fi
# Fallback if no known shells detected/configured
if [ "${SHOW_BASH}" != true ] && [ "${SHOW_ZSH}" != true ] && [ "${SHOW_FISH}" != true ]; then
echo -e " ${DIM}Add to PATH manually:${NC}"
echo -e " ${BOLD}${BLUE}export PATH=\"\$HOME/.local/bin:\$PATH\"${NC}"
echo ""
fi
echo -e "${BOLD}2.${NC} Start using Cursor Agent:"
echo -e " ${BOLD}cursor-agent${NC}"
echo ""
echo ""
echo -e "${BOLD}${CYAN}Happy coding! 🚀${NC}"
echo ""

View File

@@ -1,24 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIEGTCCAoGgAwIBAgIQNHvWtBHjDE80Xw01BOvozjANBgkqhkiG9w0BAQsFADBl
MR4wHAYDVQQKExVta2NlcnQgZGV2ZWxvcG1lbnQgQ0ExHTAbBgNVBAsMFHJvb3RA
a2V5d2FyZGVuLWRldmVsMSQwIgYDVQQDDBtta2NlcnQgcm9vdEBrZXl3YXJkZW4t
ZGV2ZWwwHhcNMjUwOTIyMTUzNjIyWhcNMjcxMjIyMTYzNjIyWjBIMScwJQYDVQQK
Ex5ta2NlcnQgZGV2ZWxvcG1lbnQgY2VydGlmaWNhdGUxHTAbBgNVBAsMFHJvb3RA
a2V5d2FyZGVuLWRldmVsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
xCX1IKW58mLCNAQZ9gpnTKNY3PYUIG3N5wvWos+Deh4ce8bj+fq0DKUnApx2kEGg
5jP2LfzjCpChkWJYfcWl8c4fR+WmZUjTaz2r070KO0nzMvJ56Dg8qlj5c6DToJAq
U+99xkMNWRSLG1CI4T+jIt29yqFEo4tIBzLvb+WRnZQZWkTzvoDF35TnkeGgmbo+
v6zAtUybQ4ep1zMGbrlEvIOql59Ibx10ct2mVNMRAkPmMjKERfko3fWNnDnnqDb8
db6K2FJpz4wjLS4Ubn5ujw9MTEwX/yFT0ri4+fzdnmSxNs/DbWd2Ug7NgYXUbWWi
3z0f9FNHmhdG/fpNuHkiIQIDAQABo2IwYDAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l
BAwwCgYIKwYBBQUHAwEwHwYDVR0jBBgwFoAUnOy2hQ1WQehPO7t7k/3rAcVwuMow
GAYDVR0RBBEwD4INKi5kZXYubnRieC5pbzANBgkqhkiG9w0BAQsFAAOCAYEAD1wF
fPCHd78HDEOmgYzvOZoFcigkO01orS0/2FLM2GM2Gk/u8AWqAZvhCGBMDzppQvQ4
Y5KWsBflMAuaGs1BWvkCNw+6DQimApOrZExwae5UbgAp/sNqOCJD2LB3TZ9otX7t
m7MbkSdkLW7gj5KIZiwPv8LJi0t/adnYE7V759WAAPL9FoaeklVL7dfFhX0M9Rtl
dOqVbeMTnldLhKTJfI7uByrzKkPpMn6jWXTlKzhJT0UlktQTaIVxP4ewS5/rvOFf
vWFQAtHQ5OY6CegR8YbcjibRKjFA+4VkBhJRmWhuj+9haij0t1LX94HgYnJKNgwj
TV+vCx0a5Z9tWzzYmb9g+tHB4W23A7Nd8QIOddxljPgXdTmepuM4UecHrXQVKaXG
TmN/VXKtDof8IuJnBSRUds6L4CRMKqDKu/FzAorLX3gDUUnmlXkZiD+YZ074EPuP
w6QZeaY3Wohqv8dF3xt75UcfpG5Z3zRSAkomPGQ75Zgjstq1i6MkBJtwcM/l
-----END CERTIFICATE-----

View File

@@ -1,28 +0,0 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDEJfUgpbnyYsI0
BBn2CmdMo1jc9hQgbc3nC9aiz4N6Hhx7xuP5+rQMpScCnHaQQaDmM/Yt/OMKkKGR
Ylh9xaXxzh9H5aZlSNNrPavTvQo7SfMy8nnoODyqWPlzoNOgkCpT733GQw1ZFIsb
UIjhP6Mi3b3KoUSji0gHMu9v5ZGdlBlaRPO+gMXflOeR4aCZuj6/rMC1TJtDh6nX
MwZuuUS8g6qXn0hvHXRy3aZU0xECQ+YyMoRF+Sjd9Y2cOeeoNvx1vorYUmnPjCMt
LhRufm6PD0xMTBf/IVPSuLj5/N2eZLE2z8NtZ3ZSDs2BhdRtZaLfPR/0U0eaF0b9
+k24eSIhAgMBAAECggEANztQ+O5xm7T/ZlI5VTS8vbHJVf7cz/zbW9HTkGjKZtqP
vrLUgxF7HYxrnaqdICW6vtem3HA3JkRvmlaNAG1lOt+Fo2MhJagKEEp/VdIHTYaX
OqNYfHFJc9Y1978zmCTAJn5rdiZvXcQRH5Hf2T1oHGtABAzBHSQdFhnbnjCQfkQ0
SnPlrzyJi6V4A6f8Ydgkx96c53QvoslRru1it2ge7hMUlCsds+o88B13nsdoYsQ7
Ifa+d4OgFAY3+T3S//kmChXV3Ig+B9M+2f0SCmI4YVJEM1szw2WewOb4JW7jV7cf
2PKTLLkbB0iSxvB29hrtGiwE/SVo+2kq/FXHFwMf2QKBgQDEW//pOqtKIlBvx2j4
d3pzpUgYRS3b+ab2gy65gr7mPtH9sp5IXtOrfeNaMRugIE/0Pb1z1vORWRtnnm2d
5U1+UWzhyIwqNsPaU7mcazBC/pezqX+DRf+h1Yz8QxIfq2EuqWge5YGUUywx7QzX
+V+r4wx5udA1Q/4wucsazz4mzwKBgQD/uYsmYfRhS84yeBjv6V2G6BKiTjN1Ffti
ZMJ+vX58CU4XOPanPRi/kwiP1USlJrIUqSj0YVeqjoDPhM5rzpASTxpds7dXe+kD
jcvdNIxrKVTPoY8VT7XgntfEbAUPl+vnw457yJ9U4YJVOeyuybpmOdnR9znEuR3a
guBwk5RkDwKBgDwMjoR6xqtTNxoX94gUscPwBc42ScH95Qt6Lq3YyByNlZZqK3Gi
XkURqJeKcRJVD154CxoD4FTQ1Uqo7ojc+QfqSsv5krPOL7Ly685kEUxLo4T0DuTM
YVLShd0XfdFljcDBWfAo66m6jcdu4QCjaJieRNBs/LltY6zvBKfcPPuNAoGBANIE
UMpqAijx99stFNXbo0sLR1pyvQH41qa9N5qdB8bYYYDi8Hbyz2NuXsa5kRHNUM11
C8SAOV5CgHltiZWyZFIVEwNHeFhp1Dlt97Ko2HWd0SBgf8Ex4J4j9fJEAHgI/d4u
ldMFNg2g0sgptT7rP6F6+2/cCV6N5X2ypJ7wJRtzAoGAWQ0Agm7DPT9Xchqx0F0v
jRp+yWMFktPg9MFFZGFgf5H5p3oVcklViV0YpAorBQrONNfRDenRoghhN2jikOhp
iLJOKn+ABo0k8zqeEw4Q/NX7T0B9nGsx4JQY+tMzLHcn/ckBZ5RfoFTsZJd+V3W6
1wsDuZxxPViQdzNilJ8SZGM=
-----END PRIVATE KEY-----

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,16 +1,16 @@
django==5.1
django-ninja==1.1.0
django-ninja==1.4.0
django-redis>=6.0.0
djangorestframework==3.15.2
djangorestframework-simplejwt==5.3.1
mozilla-django-oidc==4.0.0
django-unfold==0.4.1
django-tailwind==3.8.0
psycopg2-binary==2.9.9
mozilla-django-oidc>=4.0.0
django-unfold>=0.70.0
django-tailwind==4.4.0
psycopg2-binary>=2.9.9
gunicorn==23.0.0
paramiko==3.5.0
cryptography==43.0.3
celery==5.4.0
python-dotenv>=1.0
paramiko==4.0.0
cryptography>=46.0.0
celery>=5.5.0
python-dotenv>=1.2
whitenoise>=6.6
cookiecutter>=2.6

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long