VMGWARE / Camphouse

Camphouse is a simple, open-source, and self-hosted social media platform.
https://camphouse.vmgware.dev/
Other
4 stars 3 forks source link
mongodb nodejs

Camphouse

License: CC BY-NC-SA 4.0 status-badge

Post something amazing. ✨

About The Project

Camphouse is a simple, open-source, and self-hosted social media platform. It is designed to be easy to use and easy to deploy. It is built with Node.js, MongoDB, and Vue.js. It was originally called Aqurilla, but was renamed to Camphouse in 2023.

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

Before starting with the installation, ensure that the following prerequisites are installed and properly configured on your system.

Installation

Follow the steps below for installation and setup:

  1. Clone the repo

    gh repo clone VMGWARE/Camphouse
  2. Navigate into the project directory

    cd Camphouse
  3. Copy the .env.example file and rename it to .env.

    cp .env.example .env
  4. Open the .env file with your favorite text editor and fill in the configuration details.

    # Application configuration
    APP_PORT=3000                   # The port on which the app will run.
    SESSION_SECRET=<your_secret>    # A secret string used to secure user sessions.
    
    # Database configuration
    DB_NAME=camphouse               # The name of your MongoDB database.
    DB_HOST=localhost               # The host where your MongoDB server is running.
    DB_PORT=27017                   # The port on which your MongoDB server is accessible.
    DB_USER=<db_username>           # The username for your MongoDB database.
    DB_PASS=<db_password>           # The password for your MongoDB database.
    
    # JWT
    JWT_SECRET=<jwt_secret>         # A secret string used to sign JSON Web Tokens.
    
    # Admin
    ADMIN_HANDLE=<admin_handle>     # The handle for the initial admin account.
    ADMIN_EMAIL=<admin_email>       # The email address for the initial admin account.
    ADMIN_PASSWORD=<admin_password> # The password for the initial admin account.
    ADMIN_USERNAME=<admin_username> # The username for the initial admin account.
    
    # Sentry
    SENTRY_DSN=<sentry_dsn>         # The DSN for your Sentry project.
    
    # Storage
    MINIO_ACCESS_KEY=<minio_key>    # The access key for your MinIO server.
    MINIO_SECRET_KEY=<minio_secret> # The secret key for your MinIO server.
    MINIO_BUCKET=<minio_bucket>     # The name of the bucket to store images in.
    MINIO_ENDPOINT=<minio_endpoint> # The endpoint for your MinIO server.
    LOCAL_STORAGE=<true/false>      # Whether to store images locally. If MinIO is configured, this will be ignored.

    Replace the placeholder text (e.g., <your_secret>, <db_username>) with your actual information. Keep these details confidential.

  5. Continue with the installation of NPM packages and starting the servers as provided in the original guide.

    cd frontend
    npm install
    cd ../backend
    npm install

Start the backend server:

   cd backend
   npm run start

Start the frontend server:

   cd frontend
   npm run serve
  1. Access the application through your browser at http://localhost:8080.

Docker

  1. Pull the image

    docker pull insidiousfiddler/camphouse
  2. Run the container with your database credentials

    docker run -d -p 8000:80 insidiousfiddler/camphouse -e DB_HOST=<host> -e DB_PORT=<port> -e DB_NAME=<database> -e DB_USER=<username> -e DB_PASS=<password> -e SESSION_SECRET=<secret> -e JWT_SECRET=<secret>
  3. Visit the site at http://127.0.0.1:8000

A Quick warning. If you have LOCAL_STORAGE set to true. Make sure to assign a volume to the /usr/local/api/public/storage path. Otherwise, you will lose all your images when you restart the container.

Roadmap

See the open issues for a list of proposed features (and known issues).

General

Admin

License

Distributed under the CC BY-NC-SA 4.0 License. See LICENSE for more information.

Contributions

Contributions are welcome! If you encounter any issues or have improvements to suggest, feel free to open an issue or submit a pull request.

Contact

For any questions or suggestions, please feel free to contact the author. You can also find more information about the author below.


A VMG Ware Project.