Project Lighthouse is a clean-room, open-source custom server for LittleBigPlanet.
Find a file
Josh 1bf4ed6218
Add more unit tests (#757)
* Reorganize tests into unit/integration pattern

* Make DbSets virtual so they can be overridden by tests

* Add MessageControllerTests

* Implement DigestMiddlewareTests

* Refactor SMTPHelper to follow DI pattern which allows for mocking in unit tests.

* Fix MailQueueService service registration and shutdown

* Implement tests for Status and StatisticsController and reorganize tests

* Start working on UserControllerTests

* Start refactoring tests to use In-Memory EF provider

* Refactor integration tests to reset the database every time
Change default unit testing database credentials

* Update credentials to use default root with different passwords

* Throw exception when integration db is not available instead of falling back to in-memory

* Evaluate DbConnected every time

* Remove default DbContext constructor

* Setup DbContexts with options builder

* Convert remaining Moq DbContexts to InMemory ones

* Add more tests and use Assert.IsType for testing status code

* Add collection attribute to LighthouseServerTest

* Remove unused directives and calculate digest in tests

* Fix digest calculation in tests

* Add test database call

* Clear rooms after each test

* Fix CommentControllerTests.cs

* Disable test parallelization for gameserver tests

* Fix failing tests

Fix SlotTests

Make CreateUser actually add user to database

Fix dbConnected Lazy and change expected status codes

Properly Remove fragment from url for digest calculation

Fix digest calculation for regular requests

[skip ci] Remove unused directive

Don't use Database CreateUser function

Get rid of userId argument for generating random user

Rewrite logic for generating random users

Fix integration tests

* Implement changes from self-code review

* Fix registration tests

* Replace MailQueueService usages with IMailService
2023-05-15 15:00:33 -05:00
.config Bump dotnet-trace from 6.0.351802 to 7.0.421201 (#749) 2023-04-25 16:26:13 +00:00
.github Add more unit tests (#757) 2023-05-15 15:00:33 -05:00
.idea/.idea.ProjectLighthouse/.idea Add simple doc for translations 2022-08-14 17:48:12 -04:00
.run NET 7.0 support (#581) 2022-12-13 18:17:28 -06:00
Documentation Refresh the website's UI 2022-08-19 21:15:41 -04:00
ProjectLighthouse Add more unit tests (#757) 2023-05-15 15:00:33 -05:00
ProjectLighthouse.Localization Update the localization files (#756) 2023-04-28 23:27:21 -05:00
ProjectLighthouse.Servers.API Add more unit tests (#757) 2023-05-15 15:00:33 -05:00
ProjectLighthouse.Servers.GameServer Add more unit tests (#757) 2023-05-15 15:00:33 -05:00
ProjectLighthouse.Servers.Website Add more unit tests (#757) 2023-05-15 15:00:33 -05:00
ProjectLighthouse.Tests Add more unit tests (#757) 2023-05-15 15:00:33 -05:00
ProjectLighthouse.Tests.GameApiTests Add more unit tests (#757) 2023-05-15 15:00:33 -05:00
ProjectLighthouse.Tests.WebsiteTests Add more unit tests (#757) 2023-05-15 15:00:33 -05:00
scripts-and-tools Fix ownership check in docker entrypoint script 2023-02-24 00:45:05 -06:00
.dockerignore Containerize Project Lighthouse (#582) 2023-01-04 19:26:49 -06:00
.gitignore Update gitignore and dispose DbConnected context 2023-01-22 05:45:39 -06:00
CODE_OF_CONDUCT.md Add a contributor code of conduct (#686) 2023-02-21 20:41:56 +00:00
CONTRIBUTING.md Update CONTRIBUTING.md 3: auuuugggghhhh (#729) 2023-04-02 23:54:10 +00:00
crowdin.yml Crowdin GitHub actions test 2022-08-12 20:21:54 -04:00
docker-compose.yml Make PhotoSubjects use a one to many relationship (#687) 2023-02-24 04:20:55 +00:00
Dockerfile Update Dockerfile to comply with dotnet 7.0.2 SDK changes 2023-03-30 20:08:20 -05:00
global.json NET 7.0 support (#581) 2022-12-13 18:17:28 -06:00
LICENSE Add AGPL-3.0 LICENSE 2021-10-16 00:59:43 -04:00
ProjectLighthouse.sln Merge main into crowdin 2022-06-10 04:30:23 -04:00
ProjectLighthouse.sln.DotSettings Rework login and registration systems (#600) 2022-12-26 01:03:14 -08:00
README.md Update README.md (#491) 2022-09-24 18:25:33 -05:00

Project Lighthouse

Continuous Integration GitHub commit activity GitHub contributors GitHub code size in bytes Source Lines of Code

Project Lighthouse is a clean-room, open-source custom server for LittleBigPlanet. This is a project conducted by the LBP Union Ministry of Technology Research and Development team.

For concerns and inquiries about the project, please contact us here.

For general questions and discussion about Project Lighthouse, please see the megathread on our forum.

DISCLAIMERS (Please read!)

This is not a final product.

This is beta software, and thus is not stable nor is it secure.

While Project Lighthouse is in a mostly working state, we ask that our software not be used in a production environment until release.

This is because we have not entirely nailed security down yet, and your instance WILL get attacked as a result. It's happened before, and it'll happen again.

Simply put, Project Lighthouse is not ready for the public yet.

In addition, we're not responsible if someone hacks your machine and wipes your database, so make frequent backups, and be sure to report any vulnerabilities. Thank you in advance.

We are not obligated to provide support.

Project Lighthouse is open source. However, it is licensed under the GNU Affero General Public License version 3 ( AGPLv3) meaning that Project Lighthouse is provided to you as-is, with absolutely no warranty.

Please understand that while this license gives you freedom to do pretty much anything you would want to do, including allowing you to run your instance, this doesn't mean we are obligated to support you or your instance. When you set up an instance of Project Lighthouse, you are entirely on your own.

It is very important to stress that the LBP Union and Project Lighthouse is not affiliated with Sony Group Corporation (collectively referred to as “Sony”) and its subordinate entities and studios. We are not the official developers of LittleBigPlanet or it's online services. Project Lighthouse is a clean-room reimplementation of its server, not the official servers.

By using Project Lighthouse you release Sony, as well as any employees or agents of Sony, from any and all liability, corporate, or personal loss caused to you or others by the use of Project Lighthouse or any features we provide.

Building

This will be written when we're out of beta. Consider this your barrier to entry ;).

It is recommended to build with Release if you plan to use Lighthouse in a production environment.

Contributing

Please see CONTRIBUTING.md for more information.

Compatibility across games and platforms

Game Console (PS3/Vita/PSP) Emulator (RPCS3/Vita3k/PPSSPP) Next-Gen (PS4/PS5/Adrenaline)
LBP1 Compatible Compatible No next-gen equivalent
LBP2 Compatible Compatible No next-gen equivalent
LBP3 Compatible Compatible Incompatible
LBP Vita Compatible Incompatible, PSN not supported on Vita3k No next-gen equivalent
LBP PSP Potentially compatible Incompatible, PSN not supported on PPSSPP Potentially Compatible

Project Lighthouse is mostly a work in progress, so this chart is subject to change at any point.