Code Monkey home page Code Monkey logo

shiphub-server's Introduction

Ship: A GitHub Issues and Pull Requests App for macOS

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.

shiphub-server: The Magic Behind the Scenes

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.

Prerequisites

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.

SQL Server 2017

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.

Visual Studio 2017

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.

Azure Service Bus

Create an Azure Service Bus namespace here. Note the credentials, since you'll need them later.

Configuration

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:

  1. Restore all needed NuGet packages.
  2. 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.

Database

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

IIS or IIS Express

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.

Start All the Things

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 ¯\(ツ)

shiphub-server's People

Contributors

kogir avatar james-howard avatar fpotter avatar

Stargazers

Steffen Hanikel avatar cakefile avatar Sai Marpaka avatar Mike Gao avatar madebybear avatar Brandon Evans avatar Rafael Masson avatar Cody Krieger avatar netop://ウエハ avatar Marcin Ignac avatar palaniraja avatar Venkatesh avatar Stanislav Dobrovolschii avatar J Lam avatar Luong Vo avatar chencheng (云谦) avatar Kyungyeol Kim (Bret) avatar

Watchers

James Cloos avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.