Skip to main content

Accessing the source code of Wolfree

Wolfree is free and open-source software. You can access and download the source code from the following websites:

  1. https://gitea.com/wolfree
  2. https://try.gitea.io/wolfree
  3. https://codeberg.org/wolfree
  4. https://git.disroot.org/wolfree
  5. https://next.forgejo.org/wolfree
  6. https://git.kiwifarms.net/wolfree
  7. http://it7otdanqu7ktntxzm427cba6i53w6wlanlh23v5i3siqmos47pzhvyd.onion/wolfree

The unreliability of GitHub

We do not recommend pushing the source code to GitHub. Their DMCA Takedown Policy makes storing the source code on GitHub unreliable.

The high availability of ForgeFed

For a more reliable and collaborative development experience, we recommend using Gitea and Forgejo. These platforms support ActivityPub and ForgeFed protocols, enabling seamless collaboration and communication among developers.

Accessing the source code in censored countries

If you cannot access Gitea or Forgejo, we recommend installing the Tor Browser to bypass censorship.

Submitting a DMCA takedown notice

If you believe someone is using your copyrighted content unauthorizedly on GitHub or npm.js, please fill out the Copyright claims form to submit a DMCA takedown notice to request that the content be changed or removed. Before you begin, please read GitHub's Copyright - DMCA Takedown Policy.

As with all legal matters, it is always best to consult a professional about your questions or situation. We strongly encourage you to do so before taking action that might impact your rights. This guide isn't legal advice.

Self-hosting Wolfree instances with Docker Engine

This guide provides a step-by-step procedure for self-hosting Wolfree. You will use Docker CLI to interact with the Docker daemon through a terminal emulator. Docker Engine automates the execution of the static site generator and running the web server.

How to self-host Wolfree

To self-host a mirror site of Wolfree instances using Docker Engine, follow these steps:

  1. Install a terminal emulator. If you are unfamiliar with terminal emulators, refer to the "Command line crash course" for guidance.

  2. Install Git and Docker Engine.

  3. Download the source code by executing one of the following commands. Each command will download the source code from a different web server. If one of the commands fails, try the next one until the download succeeds.

    git clone https://gitea.com/wolfree/wolfree-dockerfile.git
    git clone https://try.gitea.io/wolfree/wolfree-dockerfile.git
    git clone https://codeberg.org/wolfree/wolfree-dockerfile.git
    git clone https://git.disroot.org/wolfree/wolfree-dockerfile.git
    git clone https://next.forgejo.org/wolfree/wolfree-dockerfile.git
    git clone https://git.kiwifarms.net/wolfree/wolfree-dockerfile.git
    git clone http://it7otdanqu7ktntxzm427cba6i53w6wlanlh23v5i3siqmos47pzhvyd.onion/wolfree/wolfree-dockerfile.git

    Reference: git clone

  4. Wait until Git outputs the resolving message similar to the following:

    Receiving objects: 100% (100/100), 1.00 KiB | 1.00 KiB/s, done.
    Resolving deltas: 100% (100/100), done.
  5. Build a Docker image by executing the following command:

    docker build --progress=plain --tag wolfree wolfree-dockerfile

    This command will generate the website using a static site generator.

    Reference: docker build

  6. Wait until Docker Engine outputs the exporting message similar to the following:

    #35 exporting to image
    #35 exporting layers done
    #35 writing image sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef done
    #35 naming to docker.io/library/wolfree done
    #35 DONE 0.0s
  7. Run a Docker container by executing the following command:

    docker run --publish 80:80 wolfree

    This command will host the website using a web server.

    Reference: docker run

  8. Wait until the web server outputs the success message similar to the following:

    > docusaurus@0.0.0 serve
    > docusaurus serve --host localhost --port 80

    [SUCCESS] Serving "build" directory at: http://localhost:80/
  9. Access the mirror site locally on the same computer where the Docker container runs. Open a web browser and navigate to http://localhost/. On the home page of the mirror site, enter a math problem in the text box and click the submit button.

Congratulations! You have successfully self-hosted Wolfree.

How to self-host Libredirect-compatible instances

By default, Wolfree instances are paywall-bypassing and incompatible with Libredirect. To make them Libredirect-compatible and respect paywalls, follow these steps:

  1. Install Git and Docker Engine.

  2. Download the source code with Git:

    git clone https://gitea.com/wolfree/wolfree-dockerfile.git
    git clone https://try.gitea.io/wolfree/wolfree-dockerfile.git
    git clone https://codeberg.org/wolfree/wolfree-dockerfile.git
    git clone https://git.disroot.org/wolfree/wolfree-dockerfile.git
    git clone https://next.forgejo.org/wolfree/wolfree-dockerfile.git
    git clone https://git.kiwifarms.net/wolfree/wolfree-dockerfile.git
    git clone http://it7otdanqu7ktntxzm427cba6i53w6wlanlh23v5i3siqmos47pzhvyd.onion/wolfree/wolfree-dockerfile.git
  3. Open the following file with a text editor:

    rust/wolfree_patch_libredirect/src/main.rs

  4. Remove the line containing the return keyword. Save the change. The changed code should look like this:

    // Remove the following line to make the instances Libredirect-compatible.
    // Remove the previous line to make the instances Libredirect-compatible.
  5. Build the image and run the container with Docker Engine:

    docker build --progress=plain --tag wolfree wolfree-dockerfile
    docker run --publish 80:80 wolfree
  6. Browse http://localhost/. Your instances should have become Libredirect-compatible and respect paywalls. If they remain paywall-bypassing and incompatible with Libredirect, please report the problem in the issue trackers of the repositories.

Troubleshooting dependency graphs

To regenerate docusaurus/package.json, follow these steps:

  1. Install NPM.

  2. Initialize a Docusaurus project with the classic template and the TypeScript variant:

    npm --yes -- init docusaurus docusaurus classic . --typescript
  3. Install MUI, a React component library:

    npm --prefix ./docusaurus/ -- install @mui/material @emotion/react @emotion/styled

Glossary of file extensions

Helpful resources for new developers

If you're new to web development, here are some websites and tools to get you started:

  • MDN Web Docs: A comprehensive resource for web developers, offering guides, tutorials, and references for various web technologies.

  • Chrome DevTools - Chrome Developers: A set of web developer tools built directly into the Google Chrome browser, providing practical features to inspect and debug web applications.

  • TypeScript: JavaScript With Syntax For Types.: A strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.

  • Web.Dev: A learning platform by Google that offers web development courses, providing practical examples to help you improve your skills.

  • Desktop/PC - Privacy Guides: A list of recommended Linux distributions with powerful terminal emulators pre-installed by default, empowering you with automating deployment, scaling, and management of containerized applications.

These resources will help you get started. Happy learning!

UX writing tips

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.