Files
aliasvault/docs/misc/dev/windows-development.md

142 lines
3.4 KiB
Markdown

---
layout: default
title: Windows development
parent: Development
grand_parent: Miscellaneous
nav_order: 2
---
# Setting Up AliasVault Development Environment on Windows
This guide will help you set up AliasVault for development on Windows using WSL (Windows Subsystem for Linux).
## Prerequisites
1. **Install WSL**
- Open PowerShell as Administrator and run:
```powershell
wsl --install
```
- This will install Ubuntu by default
- Restart your computer after installation
2. **Install Visual Studio 2022**
- Download from [Visual Studio Downloads](https://visualstudio.microsoft.com/downloads/)
- Required Workloads:
- ASP.NET and web development
- .NET WebAssembly development tools
- .NET cross-platform development
3. **Install .NET 9 SDK**
- Download from [.NET Downloads](https://dotnet.microsoft.com/download/dotnet/9.0)
- Install both Windows and Linux versions (you'll need both)
## Setup Steps
1. **Clone the Repository**
```bash
git clone https://github.com/aliasvault/aliasvault.git
cd aliasvault
```
2. **Configure WSL**
- Open WSL terminal
- Edit WSL configuration:
```bash
sudo nano /etc/wsl.conf
```
- Add the following configuration:
```ini
[automount]
enabled = true
options = "metadata,umask=22,fmask=11"
mountFsTab = false
[boot]
systemd=true
```
- Save the file (Ctrl+X, then Y)
- Restart WSL from PowerShell:
```powershell
wsl --shutdown
```
3. **Setup Development Database**
- Open a new WSL terminal in the AliasVault directory
- Run the development database setup:
```bash
./install.sh configure-dev-db
```
- Select option 1 to start the development database
- Verify the database is running:
```bash
docker ps | grep postgres-dev
```
4. **Run the Application**
- Open the solution in Visual Studio 2022
- Set WebApi as the startup project
- Press F5 to run in debug mode
## Troubleshooting
### Database Connection Issues
If the WebApi fails to start due to database connection issues:
1. **Check Database Status**
```bash
docker ps | grep postgres-dev
```
2. **Check Database Logs**
```bash
docker logs aliasvault-dev-postgres-dev-1
```
3. **Permission Issues**
If you see permission errors, try:
```bash
sudo mkdir -p ./database/postgres
sudo chown -R 999:999 ./database/postgres
sudo chmod -R 700 ./database/postgres
```
4. **Restart Development Database**
```bash
./install.sh configure-dev-db
# Select option 2 to stop, then option 1 to start again
```
### WSL Issues
If you experience WSL-related issues:
1. Make sure you have the latest WSL version:
```powershell
wsl --update
```
2. Verify WSL is running correctly:
```powershell
wsl --status
```
3. If problems persist, try resetting WSL:
```powershell
wsl --shutdown
wsl
```
## Additional Notes
- Always run the development database before starting the WebApi project
- Make sure you're using the correct .NET SDK version in both Windows and WSL
- If you modify the WSL configuration, always restart WSL afterward
- For best performance, store the project files in the Linux filesystem rather than the Windows filesystem
## Support
If you encounter any issues not covered in this guide, please:
1. Check the [GitHub Issues](https://github.com/aliasvault/aliasvault/issues)
2. Search for existing solutions
3. Create a new issue if needed