A modern, responsive web client for ASCOM Alpaca devices.
alpaca-web is a Vue 3 + Vite application for discovering, controlling, and monitoring astronomical equipment via the ASCOM Alpaca protocol. It provides a user-friendly, responsive interface for a wide range of devices (cameras, telescopes, focusers, filter wheels, domes, and more), supporting both local and networked device discovery.
- Who is it for?
- Astronomers, observatory operators, and hobbyists using ASCOM Alpaca-compatible hardware.
- What does it do?
- Device discovery, control, and monitoring in a browser-based UI.
- Advanced panel system for flexible, multi-device workflows.
- Extensible, standards-compliant, and open source.
- Features
- Getting Started
- Usage
- Project Structure
- Documentation
- ASCOM Alpaca Integration
- License
- Contact & Support
- Responsive Panel System:
- Adapts to all screen sizes and device capabilities
- Feature prioritization and collapsible sections
- Dynamic component resolution
- ASCOM Alpaca Integration:
- Supports cameras, telescopes, focusers, filter wheels, domes, and more
- Adheres to the Alpaca specification for maximum compatibility
- Device Discovery:
- Local and networked device discovery via a Node.js backend
- Modern UI/UX:
- Consistent design system, dark/light themes, and accessibility focus
- Extensible Architecture:
- Modular codebase for easy addition of new device types and features
- Robust Logging:
- Structured, filterable logs with in-app viewer (see Logging Strategy)
- Comprehensive Testing:
- Strong Unit tests with Vitest
npm install
npm run dev
npm run build
npm run test:unit
npm run test:e2e:dev
For more details, see the Project Setup and docs/ directory.
- Start the development server:
npm run dev
- Open your browser:
- Visit http://localhost:5173 (or the port shown in your terminal)
- Discover and control devices:
- Use the UI to discover Alpaca devices on your network and interact with them
Note: For production deployment or packaging, see the manual packaging instructions below or in the original README history.
├── src/ # Main application source code
│ ├── api/ # Alpaca protocol clients
│ ├── assets/ # Static assets, design tokens, icons
│ ├── components/ # Vue components (devices, panels, layout, UI)
│ ├── lib/ # Utility libraries
│ ├── plugins/ # Vue plugins (logging, etc.)
│ ├── router/ # Vue Router setup
│ ├── services/ # Device discovery, imaging, etc.
│ ├── stores/ # Pinia stores (state management)
│ ├── types/ # TypeScript types
│ ├── ui/ # UI-specific utilities
│ ├── utils/ # General utilities
│ └── views/ # Top-level views/pages
├── server/ # Node.js discovery server
├── tests/ # Unit and integration tests
├── docs/ # Additional documentation
├── public/ # Static public assets
├── ...
- UI Style Consistency Plan:
- Camera Gain/Offset Implementation Details:
- Logging Strategy:
- Full API, architecture, and more:
- See the docs/ directory for in-depth guides
alpaca-web is built to be fully compatible with the ASCOM Alpaca protocol, enabling seamless control of a wide range of astronomical devices. For more on the Alpaca standard, see:
This project is licensed under the MIT License. See LICENSE.md for details.
- For bug reports, feature requests, or questions, please use the GitHub Issues page.
- For general discussion, see the docs/ directory or open an issue.