GophKeeper is a client-server system designed to securely store and manage user credentials, binary data, and other private information. This repository contains the server-side implementation of GophKeeper, providing the backend services for user authentication, data storage, and synchronization.
- User Registration, Authentication, and Authorization: Manages user accounts, securely authenticates users, and authorizes access to private data.
- Secure Data Storage: Stores encrypted private data, including login credentials, arbitrary text, binary data, and credit card information.
- Data Synchronization: Ensures data consistency across multiple authorized clients of the same user.
- Data Retrieval: Provides secure endpoints for users to retrieve their stored private data.
-
cmd/portfolio: Contains the main server application entry point.
main.go
: Entry point for the server application.Dockerfile
: Docker configuration for building the server application container.
-
static: Contains static files for the server.
dist
: Distribution files for the frontend, if applicable.icons
: Icons used in the application.technology
: Technology icons used in the application.
-
.vscode: Visual Studio Code configuration.
settings.json
: Settings for the development environment.
-
api-spec: (Presumed location for API specifications, not explicitly listed)
- API specifications for server endpoints.
-
config: Configuration files for the server.
default.conf
: Default server configuration.nginx.conf
: Nginx configuration for reverse proxy setup.
-
docker-compose.yml: Docker Compose configuration for setting up the server environment.
-
sectionsData.json: JSON data file for sections (likely configuration or initial data setup).
-
go.mod: Go module dependencies.
-
go.sum: Checksums for Go module dependencies.
-
cleanup_and_rebuild.sh: Script for cleaning up and rebuilding the project.
-
Installation:
- Clone the repository:
git clone https://github.com/yourusername/gophkeeper-server.git cd gophkeeper-server
- Clone the repository:
-
Build and Run with Docker:
- Build the Docker image:
docker build -t gophkeeper-server -f cmd/portfolio/Dockerfile .
- Run the server with Docker Compose:
docker-compose up
- Build the Docker image:
-
Configuration:
- Ensure the
default.conf
andnginx.conf
are properly configured for your environment.
- Ensure the
The server exposes various API endpoints for client interactions, including:
- User Registration: Endpoint to register new users.
- User Authentication: Endpoint to authenticate existing users.
- Data Storage: Endpoints to store various types of private data.
- Data Retrieval: Endpoints to retrieve stored data.
- Data Synchronization: Endpoints to synchronize data across clients.
For detailed API specifications, refer to the API documentation (assumed to be in the api-spec
directory).
Unit tests are implemented to ensure the functionality and reliability of the server. Run the tests using:
go test ./...
Contributions are welcome! Please submit pull requests or open issues to discuss potential improvements or report bugs.
This project is licensed under the MIT License. See the LICENSE file for details.
For more detailed documentation, please refer to the README file in the repository.