A deployable markdown editor that connects with your self hosted files and lets you edit in a beautiful interface
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore: adds readme and gitignore

+208
+34
.env.example
··· 1 + # Server Configuration 2 + PORT=8080 3 + FRONTEND_URL=http://localhost:3000 4 + ALLOWED_ORIGINS=http://localhost:3000 5 + 6 + # GitHub OAuth 7 + # Create OAuth App at: https://github.com/settings/developers 8 + GITHUB_CLIENT_ID=your_github_client_id_here 9 + GITHUB_CLIENT_SECRET=your_github_client_secret_here 10 + GITHUB_REDIRECT_URL=http://localhost:8080/api/auth/github/callback 11 + 12 + # Session Management 13 + # Generate with: openssl rand -base64 32 14 + SESSION_SECRET=your-random-session-secret-min-32-characters 15 + SESSION_SECURE=false # Set to true in production (requires HTTPS) 16 + SESSION_MAX_AGE=86400 # 24 hours in seconds 17 + 18 + # Database 19 + DATABASE_PATH=./data/markedit.db 20 + 21 + # Git Operations 22 + GIT_CACHE_DIR=./data/repos 23 + GIT_AUTHOR_NAME=MarkEdit 24 + GIT_AUTHOR_EMAIL=markedit@example.com 25 + 26 + # Logging 27 + LOG_LEVEL=info # Options: debug, info, warn, error 28 + 29 + # Development vs Production 30 + # For production, update: 31 + # - FRONTEND_URL=https://yourdomain.com 32 + # - ALLOWED_ORIGINS=https://yourdomain.com 33 + # - SESSION_SECURE=true 34 + # - LOG_LEVEL=info
+78
.gitignore
··· 1 + # Environment variables 2 + .env 3 + .env.local 4 + .env.development 5 + .env.production 6 + 7 + # Backend (Go) 8 + backend/bin/ 9 + backend/tmp/ 10 + backend/*.exe 11 + backend/*.exe~ 12 + backend/*.dll 13 + backend/*.so 14 + backend/*.dylib 15 + backend/*.test 16 + backend/*.out 17 + backend/go.work 18 + backend/go.work.sum 19 + 20 + # Frontend (Node.js) 21 + frontend/node_modules/ 22 + frontend/dist/ 23 + frontend/.astro/ 24 + frontend/.vercel/ 25 + frontend/.netlify/ 26 + frontend/.output/ 27 + frontend/build/ 28 + 29 + # Frontend logs & cache 30 + frontend/npm-debug.log* 31 + frontend/yarn-debug.log* 32 + frontend/yarn-error.log* 33 + frontend/pnpm-debug.log* 34 + frontend/.pnpm-store/ 35 + 36 + # Database 37 + *.db 38 + *.db-shm 39 + *.db-wal 40 + data/ 41 + *.sqlite 42 + *.sqlite3 43 + 44 + # Git repository cache 45 + repos/ 46 + git_cache/ 47 + 48 + # IDE / Editor 49 + .vscode/ 50 + .idea/ 51 + *.swp 52 + *.swo 53 + *~ 54 + .DS_Store 55 + *.sublime-project 56 + *.sublime-workspace 57 + 58 + # Logs 59 + *.log 60 + logs/ 61 + 62 + # Testing 63 + coverage/ 64 + *.cover 65 + *.coverprofile 66 + 67 + # Docker 68 + .dockerignore 69 + 70 + # Temporary files 71 + tmp/ 72 + temp/ 73 + *.tmp 74 + 75 + # OS 76 + Thumbs.db 77 + .Spotlight-V100 78 + .Trashes
+96
README.md
··· 1 + # MarkEdit 2 + 3 + A markdown editor for managing blog posts across multiple storage providers (GitHub, Google Drive, Dropbox). Built with Go and Astro/React, featuring WYSIWYG editing powered by TipTap. 4 + 5 + ## Features 6 + 7 + - **Multi-source Support**: Connect to GitHub repositories (Google Drive and Dropbox coming later) 8 + - **WYSIWYG Editing**: TipTap-based markdown editor with live preview 9 + - **Git Workflow**: Automatic branch management, commits, and pull requests 10 + - **Self-hosted**: Run anywhere with Docker 11 + - **Lightweight**: Single binary deployment 12 + 13 + ## Quick Start 14 + 15 + ### Prerequisites 16 + 17 + - Go 1.21+ 18 + - Node.js 18+ 19 + - Docker (optional, for containerized deployment) 20 + - GitHub OAuth App credentials 21 + 22 + ### Development Setup 23 + 24 + 1. **Create GitHub OAuth App** 25 + - Go to https://github.com/settings/developers 26 + - Create new OAuth App 27 + - Set callback URL: `http://localhost:8080/api/auth/github/callback` 28 + - Save Client ID and Client Secret 29 + 30 + 2. **Configure Environment** 31 + ```bash 32 + cp .env.example .env 33 + # Edit .env with your GitHub OAuth credentials 34 + ``` 35 + 36 + 3. **Run Backend** 37 + ```bash 38 + cd backend 39 + go mod download 40 + go run cmd/server/main.go 41 + ``` 42 + 43 + 4. **Run Frontend** 44 + ```bash 45 + cd frontend 46 + npm install 47 + npm run dev 48 + ``` 49 + 50 + 5. **Access Application** 51 + - Open http://localhost:3000 52 + - Login with GitHub 53 + - Start editing! 54 + 55 + ### Docker Deployment 56 + 57 + ```bash 58 + docker-compose up --build 59 + ``` 60 + 61 + Access at http://localhost:3000 62 + 63 + ## Architecture 64 + 65 + - **Backend**: Go with Chi router, GitHub OAuth, go-git for version control 66 + - **Frontend**: Astro (client-only) + React + TipTap editor 67 + - **Database**: SQLite for session and state management 68 + - **Deployment**: Single Docker container 69 + 70 + ## Project Status 71 + 72 + Currently in initial development phase. See [IMPLEMENTATION_PLAN.md](./IMPLEMENTATION_PLAN.md) for detailed roadmap. 73 + 74 + ### MVP Scope 75 + 76 + - ✅ GitHub authentication 77 + - ✅ Repository and file browsing 78 + - ✅ Markdown editing with TipTap 79 + - ✅ Automatic branch management 80 + - ✅ Commit and PR creation 81 + - ❌ Image uploads (links only initially) 82 + - ❌ Search, version history, collaborative editing (post-MVP) 83 + 84 + ## Documentation 85 + 86 + - [Implementation Plan](./IMPLEMENTATION_PLAN.md) - Detailed technical specification 87 + - [Architecture](./IMPLEMENTATION_PLAN.md#architecture) - System design 88 + - [API Documentation](./IMPLEMENTATION_PLAN.md#api-specification) - REST API reference 89 + 90 + ## Contributing 91 + 92 + This project will be open-sourced once MVP is complete. Stay tuned! 93 + 94 + ## License 95 + 96 + TBD