Files
Carbon/README.md
2025-02-08 23:26:10 +01:00

1.6 KiB

HTTP Server

This is a simple HTTP server for linux operating system written in C. It supports basic HTTP requests, logging, etc.

Features

  • Handles GET requests for static files.
  • Supports a control menu for managing server status, logging, and configuration (currently basic).
  • Uses pthreads for concurrent client handling.
  • Includes basic logging functionality with timestamps.
  • Configuration is loaded from a JSON file (server.json).

Build Instructions

  1. Prerequisites:

    • GCC compiler
    • Make (recommended)
    • OpenSSL libraries (libssl, libcrypto)
    • pthreads library
    • cJSON library
  2. Clone the repository (optional):

    git clone https://github.com/Azreyo/Http-server  
    cd Http-server       
    
  3. Compile:

    make
    

    This command will use the provided Makefile to compile the source files, link the necessary libraries, and create the executable in the bin directory.

  4. Create www directory:

    mkdir www
    

    Place your HTML files (e.g., index.html) inside the www directory.

  5. Create server.json:

    Create a server.json file in the same directory as the executable with the following structure:

    {
      "port": 8080,
      "use_https": false,
      "log_file": "server.log",
      "max_threads": 4,
      "running": true
    }
    

    Adjust the values as needed. use_https is not yet implemented.

Run Instructions

./bin/server  # Run the executable from the bin directory