Ship was formerly a commercial GitHub Issues and Pull Requests client distributed by Real Artists, Inc. The product is now discontinued, and the source code is now publicly available here.
While Real Artists has no intention of developing the product further, therefore will not be reviewing or accepting pull requests, anyone so inclined is welcome to fork the repository or copy any parts of the code.
So you want to run Ship and need a server to point it at? Or maybe you just want to see how it all worked? You're in the right place. This README will cover the basics you need to know to run Ship's server component locally for development.
This guide is neither detailed nor complete. It should be just enough for someone familiar with C#, Visual Studio, and Azure to get things going.
While I tried to keep the server simple, I failed. The Azure SDK emulators are almost enough, but they lack the required Service Bus features. You'll need an Azure account.
Grab the latest SQL Server. I only tested with Developer Edition, but Express might work. You probably also want SQL Server Management Studio or SQL Operations Studio, but neither is required.
Grab the latest Visual Studio. Community is fine. You'll need the "ASP.NET and Web Development," "Azure Development," and "Data Storage and Processing" roles.
Create an Azure Service Bus namespace here. Note the credentials, since you'll need them later.
Clone the repository and open RealArtists.ShipHub.sln
. If Visual Studio complains or won't load some of the projects, install any missing tooling.
Build the solution. This will do two important things:
- Restore all needed NuGet packages.
- Create configuration files in which to store your secrets.
Open the "Solution Items" and set appropriate values in the Secret.AppSettings.config
and Secret.ConnectionStrings.config
files.
Open the RealArtists.ShipHub.CloudServices
project and set proper values in the ServiceConfiguration.Local.cscfg
file.
Rebuild the solution to propogate your changes.
Enable SQL Authentication. You need not (and should not) enable the sa
account.
Enable contained databases:
sp_configure 'contained database authentication', 1;
GO
RECONFIGURE;
GO
The RealArtists.ShipHub.Database
project contains the schema you'll need to run Ship. Deploy the generated dacpac file to the database you specified in Secret.ConnectionStrings.config
.
Make the database you're using for ship contained:
USE [master]
GO
ALTER DATABASE [ShipHub] SET CONTAINMENT = PARTIAL
GO
You'll need a certificate your Mac (running the Ship client) thinks is valid. You can get a real one or generate your own. Install the certificate.
Register RealArtists.ShipHub.Api
with IIS or IIS Express with a TLS 1.2 Endpoint.
To run Ship, you need to at a minimum be running the Orleans silo and the API. Open the solution properties, select Startup Project
, Multiple Startup Projects
and ensure RealArtists.ShipHub.Api
and RealArtists.ShipHub.CloudServices
are set to start.
If you get an error saying, "Unable to get setting value Parameter name: profileName," close Visual Studio. It'll work when you re-open it ¯\(ツ)/¯