How to keep a Rails app from being copied - html

I am a Ruby on Rails developer. I specialise in Point of Sale Systems. Recently, one of my customers found a way to copy my app with the DB structure and shared the app amongst his friends(theft/piracy).
How can I safeguard my app from being copied/duplicated/stollen? Can I compile my rails app so as to hide the source code?
I was also thinking about use a MAC address as one of the app sessions. This any developer can take out of the code. I thought of not installing MySQL Workbench so as to hide DB Structure, but anyone can reinstall it. What can I do secure my Rails app?

You don't distribute it as an on premises solution. You offer it as SaaS, on your own servers or the cloud.
If they only have access through the browser, they don't have access to the code and cannot copy it.
If the app is running on something they have access to, it's already lost. You can try to mitigate it through a confidentiality agreement or other contract, but that is going to be difficult to prove and enforce.

Related

Web Development, Domain and Site Hosting

I'm not 100% sure if I'm on the correct section but i'll transfer the post once I know where it's supposed to be but I am looking for advice regarding web development, setting up a domain and hosting it.
I'm currently working on a personal project using Cloud9. Which is an online development environment where I can develop and host. The reason why I chose this is because it has MySQL usability as I retrieve and store data on the project I am working on.
I am now at the point where I want to get a domain and host a site to transfer my project over to a live website with my own domain which also has SQL/MySQL usability.
Any advice or where would be the best place to look up on methods of pursuing this?
Edit: I develop using PHP and JavaScript with MySQL
To start I would suggest heroku, they have a free option and some nice guides, depending on which server side language you use . This way you can get used to hosting some apps and doing deployments, seeing logs etc.
The database doesn't have to be on the same hosting necessarily, you can use mongolab for example.
For domain names it's a different thing, you will have to use the likes of godaddy
Why not setup your own VPS (Virtual Private Server)? There are many providers..
Design the software application with portability and avoid vendor lock-in to cloud services. For file transfer, there are FTP/FXP, zip/gzip, & version control standards like Git, CVS, SVN, etc. Use phpMyAdmin for the database export & import process to change web hosts. Otherwise, build a staging subdomain or a local development environment with copies of the original web app & use those to transfer files+DB to a new host for production.

How to migrate a Project from 'OpenShift Web Console' to '(Next Gen) Web Console'?

Is there a way to migrate a server application (with its repository), to the new Next Gen Console?
I have already a WildFly server in my personal account at URL: https://openshift.redhat.com/app/console/applications
But when I open the Next Gen Console, it's empty, and suggest me to create new project with a new server.
https://console.preview.openshift.com/console/
Is there a way to avoid setting up everything again?
I would like to keep server configurations, git repository, and Jenkins app from my former OpenShift Web Console.
Sorry, there is no direct migration tool. The manner in which the systems works is quite different from an operational standpoint, but you are also potentially going to have to tweak how your application code is organised and configured. I would suggest you create a fresh application in the new version to learn more how they are different and then you can plan what you may need to do to migrate it. I would suggest making using of the Google Group for OpenShift if you have more questions as it provides a better forum for discussion.
https://groups.google.com/forum/#!forum/openshift

Duplicating existing cakephp app for development

I need to make a development version of a cakePHP app with its own db so that a developer can work on it without disturbing the current users.
I thought it would be simple, I just copied the entire director /project to /project_dev and then copied the DB "project_db" to "project_db_dev". Then I went into /project_dev/config/database.php and changed the db to "project_db_dev".
When I went to see what I had done, I saw the app was still connecting to the same db, as if I'd changed nothing. I realized that the original folder name was referenced in /app/webroot/.htaccess so do I need to find/replace all instances of that folder name?
What steps should I follow to duplicate an existing cakePHP app?
You need to setup some kind of development lifecycle.
Generally speaking the developer shouldn't be doing any development on the server. The best way to handle it is locally using a stack of some kind such as Lamp (Linux, Apache, Mysql, PHP) switch out linux with other OS's. There are multiple cloud solution to these environments to such as Koding.com
Using something like Git for version control the developer can develop locally then push the code through to the server after is being thoroughly tested locally or on a dev server or some kind.
Keeping Dev work and Live work away from each other is key.
Could do with a bit more information.
If both databases are hosted on the same server and you have permission to access them both with the same user then all you have to do is change the name of the database in your database.php
If not you will also have to update the IP and any other additional settings port etc.
If you are still having troubles email me simpsond1988#gmail.com

how to configure shared web hosting on ubuntu server?

i am planning to open a shared web hosting company. before opening i am configuring and checking that all things are up and running or not.
i had tried webmin, virtualmin and ajenti as web hosting manager on ubuntu server but i am not satisfied with them. is there any alternative to them which have secure administrator and client side control panel and easier to manager client account and hosts.
i am using apache2 as web server and mysql as database serve.
Thank You
Try ZPanel, it is cross-platform and has a great looking control panel. They also provide an installer which installs Apache, PHP, MySQL, and ZPanel, all pre-configured to run a shared hosting service.
Link
Getting shared hosting right isn't an easy thing to do especially if you want to allow your clients to use scripting languages like PHP. By default, PHP runs under the same userid regardless of which of customer the files belong to. So they will be able to see the files (including config files with database passwords) of the other customers.
There are ways around this problem, but most of them are either inconvenient for the customer or they bring other problems (like having to run the Apache as root).
Besides the shared hosting market is quite full with existing companies which have huge data centers and therefore can offer much more service at lower costs.
So my suggestion would be: Look at new services that you can provide. Docker Hosting or LXC Hosting isn't that common yet and you can better compete there.
If you really want to do simple shared hosting, and are in search of an admin tool: Try ISPCONFIG3

Moving XAMPP project to real server

I'm a college student and an amateur in web development. I've been working on a query system to query some foxpro database tables for this company I am interning in. I was asked to implement my project in their local server (running on Windows Server 2003) and I am not sure where to begin since this will be my first time working with a real server and I have almost zero knowledge about it.
The project was done with PHP, Javascript, mySQL and JQuery and is developed in XAMPP. It will be accessed by everyone on the office intranet. I need to set up mySQL database for the login as well.
1) Would it be better to do this on IIS or Apache?
2) I am aware that XAMPP is Apache, but if I implement my project on IIS, will there be any difference or will I need to change my codes?
Any advice is greatly appreciated!
The answer to this question is governed by
the tech your project uses.
your need to coexist with the other services on that company W2003 server.
If your project happens to be the first web app to be served from that server, just set up XAMPP, move your files and database to the server, and be done with it.
But it's unlikely. You need to talk to whomever set up the last web app on that server. It's possible to set up a server so some web pages are served by IIS and others by Apache, but then those pages need different port numbers. That will make things more confusing and less convenient for your users.
php/MySQL/odbc works fine on IIS if that's what you need to use. You may have to monkey around with protections and so forth to get it tweaked out. But it will perform just fine.
The take-home lesson for you as you develop this small scale web app is to build things like that to fit the intended production deployment environment. XAMPP is a popular and successful development setup PRECISELY BECAUSE there are approximately Avogadro's Number of $4-per-month Linux-Apache-MySQL-php hosting services in the world that are entirely compatible with it. But that's not your deployment target this time.