jonpchin / gochess

Online real time chess web server using websockets
MIT License
48 stars 17 forks source link

installation notes? #90

Open nbi1 opened 6 years ago

nbi1 commented 6 years ago

Looks promising if only I could figure out how to install it. In the absence of an installation script how about a brief synopsis on how to install? Don't see any relevant files in the master directory. Thanks.

jonpchin commented 6 years ago

Yes, you are correct that there is no install script and no instructions to set everything up. I plan on working on this either this weekend or next.

nbi1 commented 6 years ago

Thanks. No worries, I've worked on plenty of projects myself for which the docs had to be generated at the end due to time constraints so I understand completely. I just wanted to make sure I didn't overlook a file.

On 05/10/2018 08:31 PM, Jonathan Chin wrote:

Yes, you are correct that there is no install script and no instructions to set everything up. I plan on working on this either this weekend or next.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/jonpchin/gochess/issues/90#issuecomment-388249656, or mute the thread https://github.com/notifications/unsubscribe-auth/AGY1vAvS4chgoOeHEacEj__XU0EkA1Kuks5txQX2gaJpZM4T6Vep.

jonpchin commented 6 years ago

I looked into this issue. And the biggest missing requirement to get all this working is to setup the database and import a template database that just has the tables (no user data) needed to work with the web server. I have the database schema but I have not published it to the public mainly because I have a production web server that uses the exact same database schema. I am not a database security expert so I have postpone this issue until I can figure out the safest way to deal with this.

jonpchin commented 6 years ago

If you have any ideas I am open to hearing them.

nbi1 commented 6 years ago

The way I envision this is that an admin runs a SQL script to set up the tables and then as individual accounts are created on the server the admin adds corresponding user entries to the DB. I see no harm in publishing the schema since eventually it's going to be known anyway and anyone who doesn't have an account can't do anything on the server.

On 05/12/2018 06:55 AM, Jonathan Chin wrote:

I looked into this issue. And the biggest missing requirement to get all this working is to setup the database and import a template database that just has the tables (no user data) needed to work with the web server. I have the database schema but I have not published it to the public mainly because I have a production web server that uses the exact same database schema. I am not a database security expert so I have postpone this issue until I can figure out the safest way to deal with this.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/jonpchin/gochess/issues/90#issuecomment-388556939, or mute the thread https://github.com/notifications/unsubscribe-auth/AGY1vJtzPVAzLZ3fZ1E7SFgf29xcyIldks5txunSgaJpZM4T6Vep.

nbi1 commented 6 years ago

How everything integrates with the existing web server (Apache ?) and database (MySql ?) needs to be covered. It doesn't look like email integration is required. If integration/setup can't be fully automated then detailed installation steps of what/when/how should be published. I'm a developer and could eventually figure it out by sifting through the source code, but that's too much to ask of the average user looking to deploy this. This had to be deployed somewhere already. Who did the initial deployment, was that you?

On 05/12/2018 06:55 AM, Jonathan Chin wrote:

If you have any ideas I am open to hearing them.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/jonpchin/gochess/issues/90#issuecomment-388556948, or mute the thread https://github.com/notifications/unsubscribe-auth/AGY1vGzMdFE5f13l0xVMhhEKKfzefMAPks5txuncgaJpZM4T6Vep.

jonpchin commented 6 years ago

I have deployed this web server to goplaychess.com

This chess web server doesn't use Apache but rather the built in web server in the golang language. You mentioned :

I see no harm in publishing the schema since eventually it's going to be known anyway

but take a sample field (not actually copied from my schema)
password char(128) NOT NULL,

will be exposed on the database schema. The open source code on github reveals the table names and the column names but not the length or datatype or if its NOT NULL. Exposing this extra information is what makes me unsure if this is a potential security issue or not.

jonpchin commented 6 years ago

May I ask what you intend on doing with this project? Do you want to deploy it and host it on your own domain or just experiment on your own computer? This chess web server also contains an experimental MUD which is in development and a some other other random things such as generating github release notes.

nbi1 commented 6 years ago

Scripts to create the tables aren't going to contain actual values. And if I don't have an account with admin privilege how does knowing the schema help me? Ordinary users have no access to the password data.

On 05/12/2018 09:13 AM, Jonathan Chin wrote:

I have deployed this web server to goplaychess.com

This chess web server doesn't use Apache but rather the built in web server in the golang language. You mentioned :

I see no harm in publishing the schema since eventually it's going
to be known anyway

but take a sample row (not actually copied from my schema) |password| char(128) NOT NULL,

will be exposed on the database schema. The open source code on github reveals the table names and the column names but not the length or datatype or if its NOT NULL. Exposing this extra information is what makes me unsure if this is a potential security issue or not.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/jonpchin/gochess/issues/90#issuecomment-388565535, or mute the thread https://github.com/notifications/unsubscribe-auth/AGY1vEKkTAM3KNkiQI0wlSaShG3sKAONks5txwoOgaJpZM4T6Vep.

nbi1 commented 6 years ago

On 05/12/2018 09:39 AM, Jonathan Chin wrote:

May I ask what you intend on doing with this project? Do you want to deploy it and host it on your own domain or just experiment on your own computer?

Our chess club just got a site of its own and a server based game playing capability would be a nice feature.

This chess web server also contains an experimental MUD which is in development and a some other other random things such as generating github release notes.

I don't know what "MUD" is.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/jonpchin/gochess/issues/90#issuecomment-388567270, or mute the thread https://github.com/notifications/unsubscribe-auth/AGY1vEjgrQqnqd_zrabXcEFNxayQEWWNks5txxArgaJpZM4T6Vep.

jonpchin commented 6 years ago

Our chess club just got a site of its own and a server based game playing capability would be a nice feature.

I could potentially refactor my code to a golang package that can be used by you to accomplish what you want but you would need to be familiar with Golang if you were planning to use said package. Also there are a lot of features that this chess web server provides, the less features you need the easier/quicker it would be for me to refactor into something portable for you to use. Do you need a registration page or login page? Would it be okay if random guests played each other and there was no signup required? Do you need SSL/HTTPS secrurity or would plain HTTP suffice? Do you need chat? Do you need user profiles?

jonpchin commented 6 years ago

If there is no login/registration, no user profile, and no rating then there is no need for a database. That will solve the database security issue we were talking about earlier.

nbi1 commented 6 years ago

Thanks for offering to spend time on this, but it may not even be possible to install this on our hosting site. Our hosting company is persnickety about installing 3rd party apps. My plan was to take a look at it on my home server and if it meets our needs attempt an install at our hosted site. We were hoping to find a drop-in solution which would work under the constraints of a typical hosting site, but I don't think that's the case with gochess. From what I can see it has tremendous potential, but at this point its deployment on our site is wrought with too many obstacles/hurdles. Our site maintainers can't spend the time on this right now and I'm not comfortable asking you to spend time and effort on something which could very well be a one off. I will continue to monitor your project, but in the interim we may go with something like embedded lichess which limits our exposure and overhead. Many thanks.

On 05/12/2018 12:09 PM, Jonathan Chin wrote:

Our chess club just got a site of its own and a server based game
playing capability would be a nice feature.

I could potentially refactor my code to a golang package that can be used by you to accomplish what you want but you would need to be familiar with Golang. Also there are a lot of features that this chess web server provides, the less features you need the easier/quicker it would be for me to refactor into something portable for you to use. Do you need a registration page or login page? Would it be okay if random guests played each other and there was no signup required?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/jonpchin/gochess/issues/90#issuecomment-388576402, or mute the thread https://github.com/notifications/unsubscribe-auth/AGY1vHehiiOyWtpgq5_HFFBWONpFwCXfks5txzNZgaJpZM4T6Vep.

createapp commented 6 years ago

Personally, I would like to install this script on a private domain for my family members only to play tournaments. Having some kind of install script would be amazing!

jonpchin commented 6 years ago

I will be working on this. I just haven't found time yet but it is on my todo list.

lehaufa commented 4 years ago

Good afternoon! Your project is wonderful! For a long time I wanted to launch a small tournament among friends from a chess club.

How can I run this project on my server? I am not interested in SSL or registration. All you need is the login page. I can create user accounts myself via SQL database.

jonpchin commented 4 years ago

Hi,

This goplaychess project is experimental and intended for personal use. Currently I am tied up with another big project and I am unable to work on the goplaychess project. I hope to one day return back to the goplaychess project. To answer your question, as of now there is no easy way for other people to run the goplaychess project on their server however the golang code is open source so if one knew golang programming they could download the code, make a bunch of modifications to it and then they would need to setup the SQL database themselves.

ch-iv commented 1 year ago

Hi,

I want to use this project as a template for my home chess server. However, I ran into a database issue during the installation. I can't find the MySQL database schema required for the program to work correcly. I deciphered the schemas from the code for some tables, but I am still failing to make the more complex tables work. Is there a way that you could share the database schema to make it possible for other users to install this program.

Once I get a hold of schema, I could write some docs or possibly an install script if you would like me to. Thanks

jonpchin commented 1 year ago

I have added the database schema: https://github.com/jonpchin/gochess/commit/b0233c971f7876ecf84894ae4b55ea6bcf8d9477

ch-iv commented 1 year ago

That is great, thank you so much! Especially for a quick response on a 5 year old issue!