A secure, modern password manager interface built with Quasar Framework v2 and Vue 3, featuring end-to-end encryption, PWA capabilities, and seamless integration with YAPM.
- Node.js: 18.x or higher
- npm: 9.x or higher (or yarn/pnpm)
This frontend requires YAPM backend to be running and accessible.
git clone https://github.com/mixvoip/yapm-interface.git
cd yapm-interfacenpm installnpm install -g @quasar/cliCopy the example environment file and update it with your settings:
cp .env.example .envEdit .env:
# Base URL for the frontend application
BASE_URL=http://localhost:9000
# Backend API URL
API_BASE_URL=http://localhost:8000
# Keep console logs in browser (true for development, false for production)
KEEP_CONSOLE_LOGS=true
# Server public key from backend (copy from backend's .env.local)
SERVER_PUBLIC_KEY=your-server-public-key-here
# Development host configuration (if you want to use a different host than localhost)
DEV_HOST=your_host_hereImportant: The SERVER_PUBLIC_KEY must match the public key generated in your backend installation.
JWT public key:
Create jwt-public-key.ts in src/utils with the jwt public key from your backend installation:
const jwtPublicKey = `Your-JWT-Public-Key-Here`;
export default jwtPublicKey;
# Start Quasar development server (SPA mode)
quasar dev
# or
npm run dev
# Start in PWA mode
quasar dev -m pwa
# The application will be available at http://localhost:9000The production setup builds the application as a Progressive Web App (PWA) and includes automation through the provided Makefile.
git clone https://github.com/mixvoip/yapm-interface.git
cd yapm-interface
git checkout mainFollow the steps in the Development Environment section but update the configuration for production:
BASE_URL=https://yapm.yourdomain.com
API_BASE_URL=https://api.yourdomain.com
KEEP_CONSOLE_LOGS=false
SERVER_PUBLIC_KEY=your-server-public-key-hereJWT public key:
Create jwt-public-key.ts in src/utils with the jwt public key from your backend installation:
const jwtPublicKey = `Your-JWT-Public-Key-Here`;
export default jwtPublicKey;
You can build the application using the provided Makefile, which includes automatic backup and restoration on build failure:
# Install dependencies and build
make npmInstall
make buildThe Makefile provides the following commands:
make build: Build project with automatic backup restoration on failuremake update: Pull latest changes, install dependencies, and build
Manual build alternative:
# Install dependencies
npm install --production
# Build the PWA application
npm run build
# The built files will be in dist/pwa/ directoryThe built application is a Progressive Web App (PWA). Deploy the contents of dist/pwa/ to your web server.
Always use HTTPS in production.
- Client-Side Encryption: All sensitive data is encrypted in the browser before transmission
- End-to-End Encryption: Master passwords never leave the client unencrypted
- Public Key Cryptography: Secure key exchange with the backend server
- Always use HTTPS in production - HTTP connections expose sensitive data
- Secure environment variables: Never commit
.envfiles to version control - Monitor console logs: Disable
KEEP_CONSOLE_LOGSin production - Regular backups: Backup your environment configuration and use
make buildfor automatic backup handling
# Never add these files to VCS
.env
.env.local
.env.production
.quasar/
dist/
node_modules/If you encounter CORS errors, ensure:
- Backend
CORS_ALLOW_ORIGINincludes your frontend URL - Both frontend and backend are using the same protocol (both HTTP or both HTTPS)
- Check browser console for specific CORS error messages
If you see encryption/decryption errors:
- Verify
SERVER_PUBLIC_KEYmatches the backend's public key - Clear browser cache and localStorage
- Check that the backend API is accessible
Note: This frontend requires YAPM to function. Ensure the backend is properly configured and running.