Skip to content

Commit f5ca034

Browse files
author
eOffice Bot
committed
2 parents acd9d45 + 35a80df commit f5ca034

496 files changed

Lines changed: 70541 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.dockerignore

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
node_modules
2+
.git
3+
.gitignore
4+
desktop/
5+
*.md
6+
!README.md
7+
.env
8+
.env.*
9+
*.log
10+
coverage/
11+
e2e/
12+
.vscode/
13+
.idea/
14+
*.swp
15+
*.swo

.env.example

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# eOffice Environment Configuration
2+
# Copy this file to .env and configure as needed
3+
4+
# --- Server ---
5+
PORT=3001
6+
NODE_ENV=development
7+
# NODE_ENV=production # Set for production deployment
8+
9+
# --- Security ---
10+
# REQUIRED in production. Generate with: openssl rand -hex 64
11+
JWT_SECRET=
12+
13+
# --- CORS ---
14+
# Comma-separated list of allowed origins
15+
# CORS_ORIGINS=http://localhost:5173,http://localhost:5174
16+
17+
# --- Storage ---
18+
# Options: sqlite (default), file
19+
STORAGE_BACKEND=sqlite
20+
# Custom SQLite database path (default: ~/.eoffice/eoffice.db)
21+
# EOFFICE_DB_PATH=/path/to/eoffice.db
22+
23+
# --- AI Providers (configure at least one for AI features) ---
24+
# OpenAI (recommended for best results)
25+
OPENAI_API_KEY=
26+
# OPENAI_MODEL=gpt-4o-mini
27+
28+
# Anthropic Claude
29+
ANTHROPIC_API_KEY=
30+
# ANTHROPIC_MODEL=claude-3-haiku-20240307
31+
32+
# Ollama (local LLM - no API key needed)
33+
# OLLAMA_URL=http://localhost:11434
34+
# OLLAMA_MODEL=llama3.2
35+
36+
# EAI Hardware (eBot custom hardware)
37+
# EAI_BASE_URL=http://localhost:8420
38+
39+
# --- Logging ---
40+
# Options: trace, debug, info, warn, error, fatal
41+
LOG_LEVEL=info
42+
43+
# --- Email (IMAP/SMTP for eMail app) ---
44+
# IMAP_HOST=imap.gmail.com
45+
# IMAP_PORT=993
46+
# SMTP_HOST=smtp.gmail.com
47+
# SMTP_PORT=587
48+
49+
# --- Backups ---
50+
# Directory for SQLite backups (default: ~/.eoffice/backups)
51+
# EOFFICE_BACKUP_DIR=/path/to/backups
52+
# Maximum number of backups to keep (default: 7)
53+
# EOFFICE_MAX_BACKUPS=7
54+
# Auto-backup interval in hours (default: 24)
55+
# EOFFICE_BACKUP_INTERVAL_HOURS=24
56+
57+
# --- Clustering ---
58+
# Number of worker processes (default: number of CPU cores)
59+
# CLUSTER_WORKERS=4
60+
61+
# --- Sentry Crash Monitoring ---
62+
# Get your DSN from https://sentry.io/settings/projects/
63+
# SENTRY_DSN=https://examplePublicKey@o0.ingest.sentry.io/0
64+
# SENTRY_TRACES_RATE=0.1
65+
# SENTRY_PROFILES_RATE=0.1
66+
# Frontend apps: set VITE_SENTRY_DSN in each app's .env
67+
# VITE_SENTRY_DSN=https://examplePublicKey@o0.ingest.sentry.io/0

.eslintrc.json

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"root": true,
3+
"env": {
4+
"browser": true,
5+
"es2021": true,
6+
"node": true
7+
},
8+
"extends": [
9+
"eslint:recommended",
10+
"plugin:@typescript-eslint/recommended"
11+
],
12+
"parser": "@typescript-eslint/parser",
13+
"parserOptions": {
14+
"ecmaVersion": "latest",
15+
"sourceType": "module"
16+
},
17+
"plugins": [
18+
"@typescript-eslint"
19+
],
20+
"rules": {
21+
"@typescript-eslint/no-explicit-any": "off",
22+
"@typescript-eslint/no-unused-vars": ["warn", { "argsIgnorePattern": "^_" }],
23+
"@typescript-eslint/ban-ts-comment": "off"
24+
},
25+
"ignorePatterns": ["dist", "node_modules", "*.html"]
26+
}

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
## Summary
2+
3+
<!-- Brief description of what this PR does. -->
4+
5+
6+
## Type of Change
7+
8+
<!-- Check all that apply -->
9+
10+
- [ ] eat — New feature
11+
- [ ] ix — Bug fix
12+
- [ ] docs — Documentation only
13+
- [ ] style — Formatting, no code change
14+
- [ ] efactor — Code restructuring without behavior change
15+
- [ ] est — Add or fix tests
16+
- [ ] uild — Build system or dependency changes
17+
- [ ] ci — CI/CD pipeline changes
18+
- [ ] perf — Performance improvement
19+
20+
## Changes
21+
22+
<!-- List each change made in this PR -->
23+
24+
-
25+
-
26+
27+
## Testing
28+
29+
<!-- How was this tested? Which test suites were run? -->
30+
31+
- [ ] Unit tests pass (ctest --test-dir build --output-on-failure)
32+
- [ ] Integration tests pass
33+
- [ ] Manual testing performed
34+
- [ ] New tests added for new functionality
35+
36+
## Pre-Submission Checklist
37+
38+
- [ ] Code compiles without warnings (-Wall -Wextra -Werror for C)
39+
- [ ] All existing tests pass
40+
- [ ] New tests added for new functionality
41+
- [ ] Documentation updated if API changed
42+
- [ ] Commit messages follow <type>(<scope>): <description> convention
43+
- [ ] Branch is rebased on latest master
44+
45+
## Related Issues
46+
47+
<!-- Reference related issues: Closes #XX, Fixes #YY -->
48+
49+
50+
## Screenshots / Logs
51+
52+
<!-- If applicable, add screenshots or relevant log output -->
53+
54+
55+
## Additional Notes
56+
57+
<!-- Any other context reviewers should know -->
58+

.github/dependabot.yml

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# Standard, org-uniform Dependabot configuration template.
2+
#
3+
# Each repo should drop this file at .github/dependabot.yml and uncomment the
4+
# ecosystem entries that apply. Keep weekly cadence so review backlogs stay
5+
# manageable. Auto-assigning all PRs to a single triage owner (@srpatcha)
6+
# prevents the "ten people CC'd, no one acts" failure mode.
7+
#
8+
# Reference template lives at embeddedos-org/.github/.github/dependabot-template.yml.
9+
10+
version: 2
11+
updates:
12+
# GitHub Actions — every repo should keep this enabled.
13+
- package-ecosystem: github-actions
14+
directory: /
15+
schedule:
16+
interval: weekly
17+
day: monday
18+
open-pull-requests-limit: 5
19+
assignees:
20+
- srpatcha
21+
labels:
22+
- dependencies
23+
- github-actions
24+
25+
# Python — uncomment in repos with pyproject.toml or requirements.txt.
26+
# - package-ecosystem: pip
27+
# directory: /
28+
# schedule:
29+
# interval: weekly
30+
# day: monday
31+
# open-pull-requests-limit: 5
32+
# assignees:
33+
# - srpatcha
34+
# labels:
35+
# - dependencies
36+
# - python
37+
38+
# Node.js — uncomment in repos with package.json.
39+
- package-ecosystem: npm
40+
directory: /
41+
schedule:
42+
interval: weekly
43+
day: monday
44+
open-pull-requests-limit: 5
45+
assignees:
46+
- srpatcha
47+
labels:
48+
- dependencies
49+
- npm
50+
51+
# Go — uncomment in repos with go.mod.
52+
# - package-ecosystem: gomod
53+
# directory: /
54+
# schedule:
55+
# interval: weekly
56+
# day: monday
57+
# open-pull-requests-limit: 5
58+
# assignees:
59+
# - srpatcha
60+
# labels:
61+
# - dependencies
62+
# - go
63+
64+
# Docker — uncomment in repos with Dockerfile.
65+
- package-ecosystem: docker
66+
directory: /
67+
schedule:
68+
interval: weekly
69+
day: monday
70+
open-pull-requests-limit: 3
71+
assignees:
72+
- srpatcha
73+
labels:
74+
- dependencies
75+
- docker

.github/workflows/auto-assign.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Auto Assign PR
2+
3+
on:
4+
pull_request:
5+
types: [opened]
6+
7+
permissions:
8+
pull-requests: write
9+
10+
jobs:
11+
assign:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Assign PR to author
15+
uses: actions/github-script@v7
16+
with:
17+
script: |
18+
await github.rest.issues.addAssignees({
19+
owner: context.repo.owner,
20+
repo: context.repo.repo,
21+
issue_number: context.payload.pull_request.number,
22+
assignees: [context.payload.pull_request.user.login]
23+
});

0 commit comments

Comments
 (0)