2.7 KiB
Prosody Password Manager
This project provides a web interface to change the password for XMPP accounts managed by Prosody. It interfaces with the Prosody server to securely handle password changes.
Project Structure
.
├── cmd
│ └── http
│ ├── main.go
│ └── views
│ ├── error.hbs
│ ├── index.hbs
│ ├── styles.hbs
│ └── success.hbs
├── go.mod
├── go.sum
├── internal
│ ├── api
│ │ ├── handler
│ │ │ ├── helper.go
│ │ │ └── prosody_hdl.go
│ │ └── server.go
│ └── services
│ ├── fail2ban
│ │ └── fail.go
│ └── prosody
│ ├── account.go
│ ├── change_password.go
│ ├── change_password_test.go
│ └── prosody.go
├── kit
│ ├── config
│ │ └── config.go
│ └── path.go
└── LICENSE
Key Files
-
logic to change the password in the Prosody server. It interfaces with the Prosody server's command-line tools and verifies the current password before making any changes.
-
prosody.go: Provides utility functions related to the Prosody server, including constructing paths to account data files.
-
account.go: Contains utility functions to load account details from Prosody's data files.
-
server.go: Sets up the web server, routes, and middleware for the application.
-
main.go: The entry point of the application. It initializes the services and starts the web server.
Requirements
-
Prosody Server: Ensure that the Prosody server is installed and running on your machine. This application interfaces with Prosody's command-line tools to manage XMPP accounts.
-
Environment Variables: The application requires certain environment variables to be set. These can be provided directly or through a .env file. The required variables are:
- DOMAIN: The domain for the Prosody server (e.g., xmpp.example.com).
- API_PORT (optional): The port on which the web server will run. Defaults to 8080 if not provided.
- VIEWS (optional): The path to the directory containing view templates. Defaults to ./views if not provided.
Setup & Running
- Ensure you have Go installed on your machine.
- Clone the repository.
- Navigate to the project directory.
- Run the application using:
go run cmd/http/main.go
Visit http://localhost:<API_PORT> in your browser to access the password change interface.
Contributing
If you'd like to contribute to this project, please fork the repository and submit a pull request.