Skip to content

xtul/NetBoard

Repository files navigation

NetBoard

NetBoard is an imageboard API using ASP.NET 5. It is a hobby project and heavily work-in-progress. Many things are subject to change. A live version is available on https://netchan.nl/.

For a web interface, please see my NetChan repository.

I started this project to learn to work with .NET technology stack. The primary focus is to make maintenance/expansion simple. For example, if a board has it's name changed, migration should be painless. Adding and customizing new boards should also be straightforward.

Note: Both NetBoard and NetChan are currently undergoing major changes, with complete rewrites of certain features.

Features

Currently available

  • Reading boards and their pages, threads, single posts
  • "Classic" and List board view
  • Making new threads and responding to existing ones
  • Posting protected by hCaptcha
  • Setting separate rules for boards, such as max pages or images
  • Password-based post deletion
  • Posting images
  • Storing user-sent images in queue/public directory
  • Generating image thumbnails
  • Reporting posts for administration
  • IP bans (middleware filters IPs that are in appsettings.json and/or in DB)
  • Shadow bans (posts made by shadow banned IPs are only visible to them)
  • VPN blocking (thanks to https://github.com/ejrv/VPNs)

Partially done

  • Administration panel (will be replaced by the NetChan frontend project)
  • OAuth2 authorization (API can be protected but logging in still needs work)
  • Multiple RDBMS support (only PostgreSQL was tested)

Contributing

Any help is greatly appreciated. Feel free to contribute to the code or report issues.

To make changes to the codebase, you will need:

Visual Studio 2019 - to edit and compile the solution (free version is fine),

PostgreSQL 13 - or other supported RDBMS.

Make a fork of this repository. Open Visual Studio and press "open a project from repository". Point it to your fork and let it download.

Open NetBoard.Backend project and rename appsettings.default.json to appsettings.json. Modify to your needs (eg. database connection string and currently used database). You may also need to set NetBoard.Backend as a starting project.

After downloading all required NuGet packages, enter NuGet console. Migrate with add-migration Initial and update-database.

You should be now able to compile NetBoard and start making changes.

About

An imageboard API made with ASP.NET 5

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published