Remove ignored files
This commit is contained in:
9
.env
9
.env
@@ -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
227
.gitignore
vendored
Normal 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__/*
|
||||||
@@ -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"]
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
services:
|
services:
|
||||||
keywarden-nginx:
|
keywarden-nginx:
|
||||||
container_name: keywarden-nginx
|
|
||||||
image: nginx:alpine
|
image: nginx:alpine
|
||||||
|
container_name: keywarden-nginx
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
- ${DOCKERDIR}/nginx/configs/nginx.conf:/etc/nginx/nginx.conf:ro
|
- ${DOCKERDIR}/nginx/configs/nginx.conf:/etc/nginx/nginx.conf:ro
|
||||||
@@ -9,7 +9,6 @@ services:
|
|||||||
- ${DOCKERDIR}/nginx/certs/:/certs/
|
- ${DOCKERDIR}/nginx/certs/:/certs/
|
||||||
- ${DOCKERDIR}/nginx/webdir/:/var/www/
|
- ${DOCKERDIR}/nginx/webdir/:/var/www/
|
||||||
- ${DOCKERDIR}/nginx/logs:/var/log/nginx/
|
- ${DOCKERDIR}/nginx/logs:/var/log/nginx/
|
||||||
# - "external:internal", change external to desired port
|
|
||||||
ports:
|
ports:
|
||||||
- "443:443"
|
- "443:443"
|
||||||
|
|
||||||
@@ -21,16 +20,13 @@ services:
|
|||||||
- ALLOW_EMPTY_PASSWORD=yes
|
- ALLOW_EMPTY_PASSWORD=yes
|
||||||
|
|
||||||
keywarden-db:
|
keywarden-db:
|
||||||
container_name: keywarden-db
|
|
||||||
image: postgres:17-alpine
|
image: postgres:17-alpine
|
||||||
|
container_name: keywarden-db
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_PASSWORD: ${KEYWARDEN_POSTGRES_PASSWORD:-postgres}
|
POSTGRES_PASSWORD: ${KEYWARDEN_POSTGRES_PASSWORD:-postgres}
|
||||||
POSTGRES_DB: ${KEYWARDEN_POSTGRES_DB:-keywarden}
|
POSTGRES_DB: ${KEYWARDEN_POSTGRES_DB:-keywarden}
|
||||||
POSTGRES_USER: ${KEYWARDEN_POSTGRES_USER:-keywarden}
|
POSTGRES_USER: ${KEYWARDEN_POSTGRES_USER:-keywarden}
|
||||||
POSTGRES_PORT: ${KEYWARDEN_POSTGRES_PORT:-5432}
|
POSTGRES_PORT: ${KEYWARDEN_POSTGRES_PORT:-5432}
|
||||||
# Do not enable unless debugging, not needed to be exposed outside of docker network
|
|
||||||
# ports:
|
|
||||||
# - "5432:5432"
|
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD-SHELL", "pg_isready -U keywarden -d keywarden"]
|
test: ["CMD-SHELL", "pg_isready -U keywarden -d keywarden"]
|
||||||
interval: 5s
|
interval: 5s
|
||||||
@@ -40,13 +36,11 @@ services:
|
|||||||
- "pgdata:/var/lib/postgresql/data"
|
- "pgdata:/var/lib/postgresql/data"
|
||||||
|
|
||||||
keywarden:
|
keywarden:
|
||||||
build: .
|
image: git.ntbx.io/boris/keywarden:latest
|
||||||
container_name: keywarden
|
container_name: keywarden
|
||||||
command: gunicorn keywarden.wsgi:application --bind 0.0.0.0:8000
|
command: gunicorn keywarden.wsgi:application --bind 0.0.0.0:8000
|
||||||
volumes:
|
|
||||||
- .:/app
|
|
||||||
ports:
|
ports:
|
||||||
- "8000:8000"
|
- "8000:80"
|
||||||
depends_on:
|
depends_on:
|
||||||
- keywarden-db
|
- keywarden-db
|
||||||
- keywarden-valkey
|
- keywarden-valkey
|
||||||
@@ -56,17 +50,5 @@ services:
|
|||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .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:
|
volumes:
|
||||||
pgdata:
|
pgdata:
|
||||||
183
install
183
install
@@ -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 ""
|
|
||||||
@@ -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-----
|
|
||||||
@@ -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
23626
nginx/logs/error.log
23626
nginx/logs/error.log
File diff suppressed because it is too large
Load Diff
@@ -1,16 +1,16 @@
|
|||||||
django==5.1
|
django==5.1
|
||||||
django-ninja==1.1.0
|
django-ninja==1.4.0
|
||||||
django-redis>=6.0.0
|
django-redis>=6.0.0
|
||||||
djangorestframework==3.15.2
|
djangorestframework==3.15.2
|
||||||
djangorestframework-simplejwt==5.3.1
|
djangorestframework-simplejwt==5.3.1
|
||||||
mozilla-django-oidc==4.0.0
|
mozilla-django-oidc>=4.0.0
|
||||||
django-unfold==0.4.1
|
django-unfold>=0.70.0
|
||||||
django-tailwind==3.8.0
|
django-tailwind==4.4.0
|
||||||
psycopg2-binary==2.9.9
|
psycopg2-binary>=2.9.9
|
||||||
gunicorn==23.0.0
|
gunicorn==23.0.0
|
||||||
paramiko==3.5.0
|
paramiko==4.0.0
|
||||||
cryptography==43.0.3
|
cryptography>=46.0.0
|
||||||
celery==5.4.0
|
celery>=5.5.0
|
||||||
python-dotenv>=1.0
|
python-dotenv>=1.2
|
||||||
whitenoise>=6.6
|
whitenoise>=6.6
|
||||||
cookiecutter>=2.6
|
cookiecutter>=2.6
|
||||||
1
static/css/dist/styles.css
vendored
1
static/css/dist/styles.css
vendored
File diff suppressed because one or more lines are too long
Binary file not shown.
1
theme/static/css/dist/styles.css
vendored
1
theme/static/css/dist/styles.css
vendored
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user