0
3

[–] PuttItOut 0 points 3 points (+3|-0) ago  (edited ago)

Voat is fully ported to .NET Core (and running on .NET Core 2.0 currently).

The Core GitHub branch repo is runnable but hasn't received updates since the "Vote" code development was started (we did this to protect our IP until we finalized this new feature set). I'd estimate that nearly 95% of any critical code has remained unchanged since we paused syncing the public repo.

You can run Voat on Apache, IIS, or natively through Kestrel (which is how we ran it on Linux when testing). You can use either MS Sql or PostgresSQL and the unit test library will create the full database for you so if you get the code to compile and can run the unit tests you will have a working site locally.

One note is the configuration files (.json) need to be copy/pasted/renamed (default config files have a ~prefix in the root of the project, eg ~appsettings.json that will need to be copied to a new file without the ~ like appsettings.json) and configured (go figure) and this can be a bit of a pain that I can help you through.

Voat uses Redis by default so you will either have to have a redis server up and running or turn on the MemoryCache configuration option (again a configuration issue).

First step is to download the repo, and get it compiling (you will have configuration file issues and nuget issues during this process). Once it is compiling you can run the unit tests and then you are good to go.

Also note, each test library has it's own appsettings.json config file so heads up that making sure the configuration files are all present will be the biggest headache.

0
1

[–] emboole 0 points 1 points (+1|-0) ago 

Hi PutItOut,

I downloaded the Voat code and i am able to build it successfully (with VS 2017 and asp.net/core/etc framework). I got some questions about appsetings and configuration itself:

1) Should i manually create a database/databases on PostgreSQL? (i.e. voatUsers). If so, which ones?

2) Is there any other config file than appsettings.json on Voat.UI and Voat.Tests?

3) Correct me if i'm wrong, but i'm guessing that "voatUsers", "ReadWrite" and "ReadOnly" needs three different db login accounts with different permissions, right?

4) i'm not familiarized with Redis (i'll check it today), which kind of configuration do i need to do for running without it? (or: do you recommend me to install redis instead of?)

5) is there any other stuff that should i take in mind? i checked several topics on this sub.

Thank you, amazing application!

ps: is there any open source mobile app?

0
2

[–] PuttItOut 0 points 2 points (+2|-0) ago 

Get the tests running and passing first. After the test run you will have a database you can use to run the UI against and don't have to worry about seeding your own test data to play around. Your test connection string must have permissions to drop and create databases.

  1. You can if you want but I recommend using the test projects to generate the db(s).

  2. You can configure everything in appsettings.json. Voat does use secondary configurations but you can still place everything in appsettings.json and it will work so just do this.

  3. Voat uses different databases for voatUsers and Voat (We used to use a readonly mirror also), but you don't have to. To make dev easier we just point all three connection strings to the same database (same connection string).

  4. In the appsettings.json file you will see a section for cache (voat:cache:handlers). If you aren't using Redis, you need to set the enabled property to false and set the memory cache section to true. Please note that even though Voat has a memory cache option, we don't use it on Voat so you may find bugs that we don't test for when using it. It should work fine though. There will be a bunch of tests related to redis cache that will not pass if you don't have it installed and configured, so be aware of this. Alternatively, you can turn off cache by enabling the null cache handler and all calls will go to the database.

  5. Get the test project running and passing tests. This will create your test db for you automatically. It will also populate the database with test posts, subverses, and user accounts. Please note that all test users have their username as their password. Password is the user name (case sensitive). Any users with short user names have their user names repeated twice for the password (e.g. user: unit, password: unitunit)

Let me know how it goes.

0
0

[–] usr87612 0 points 0 points (+0|-0) ago  (edited ago)

I'm also looking to set up a private server. I couldn't find instructions for the Core branch so I went with the master branch (I'm a total .NET noob, sorry!) and used a combination of the README and https://voat.co/v/voatdev/1395160 to set it up.

I'm able to build the entire solution and publish Voat.UI it to a folder served by IIS, but I'm having trouble understanding how to actually serve the site and what default document to use for the web server. There aren't any index.html or default.asp/htm in the root of the published directory that I can see; only the index.cshtml within certain views.

0
2

[–] PuttItOut 0 points 2 points (+2|-0) ago 

Use the Core branch for sure. Asp.Net uses an mvc model so all html is rendered via a bunch of files in the views folder in an indirect way through the controllers.

0
2

[–] i_scream_trucks 0 points 2 points (+2|-0) ago 

Hahahaua debugging voat code you need a job not a full time unpaid occupation.

0
0

[–] WhiteRonin [S] 0 points 0 points (+0|-0) ago 

Still trying to figure out which platform the current code is on since I heard it went to Postgres and Apache.

Bugs are a great way to figure things out!

0
1

[–] Reddit_traitor 0 points 1 points (+1|-0) ago 

I'd assume Apache or ngix since its on Linux I think.

0
0

[–] WhiteRonin [S] 0 points 0 points (+0|-0) ago 

That’s what I heard but then I also heard they never went to the port code base.