Hi,

I am having problems with integrating sequenceserver (v. 1.14) that I am using on apache server with my own jbrowse on the same apache server. I did all (it seems so at least) what is written [here][1] .

Still  - no links! Obviously, I am missing something basic here and will be very glad for your help!!!!
I am not an expert (to say the least) in ruby. Here is my links.rb file - 

Hope I will find my mistake here... 
THANKS!

    module SequenceServer
      # Module to contain methods for generating sequence retrieval links.
      module Links
        require 'erb'
            # Provide a method to URL encode _query parameters_. See [1].
        include ERB::Util
        #
        alias_method :encode, :url_encode
        
        NCBI_ID_PATTERN    = /gi\|(\d+)\|/
        UNIPROT_ID_PATTERN = /sp\|(\w+)\|/
        require 'json'
        # Link generators return a Hash like below.
        #
        # {
        #   # Required. Display title.
        #   :title => "title",
        #
        #   # Required. Generated url.
        #   :url => url,
        #
        #   # Optional. Left-right order in which the link should appear.
        #   :order => num,
        #
        #   # Optional. Classes, if any, to apply to the link.
        #   :class => "class1 class2",
        #
        #   # Optional. Class name of a FontAwesome icon to use.
        #   :icon => "fa-icon-class"
        # }
        #
        # If no url could be generated, return nil.
        #
        # Helper methods
        # --------------
        #
        # Following helper methods are available to help with link generation.
        #
        #   encode:
        #     URL encode query params.
        #
        #     Don't use this function to encode the entire URL. Only params.
        #
        #     e.g:
        #         sequence_id = encode sequence_id
        #         url = "http://www.ncbi.nlm.nih.gov/nucleotide/#{sequence_id}"
        #
        #   querydb:
        #     Returns an array of databases that were used for BLASTing.
        #
        #   whichdb:
        #     Returns the database from which the given hit came from.
        #
        #     e.g:
        #
        #         hit_database = whichdb
        #
        # Examples:
        # ---------
        # See methods provided by default for an example implementation.
    
        def sequence_viewer
          accession  = encode self.accession
          database_ids = encode querydb.map(&:id).join(' ')
          url = "get_sequence/?sequence_ids=#{accession}" \
                "&database_ids=#{database_ids}"
    
          {
            :order => 0,
            :url   => url,
            :title => 'Sequence',
            :class => 'view-sequence',
            :icon  => 'fa-eye'
          }
        end
    
        def fasta_download
          accession  = encode self.accession
          database_ids = encode querydb.map(&:id).join(' ')
          url = "get_sequence/?sequence_ids=#{accession}" \
                "&database_ids=#{database_ids}&download=fasta"
    
          {
            :order => 1,
            :title => 'FASTA',
            :url   => url,
            :class => 'download',
            :icon  => 'fa-download'
          }
        end
    
        def ncbi
          return nil unless id.match(NCBI_ID_PATTERN)
          ncbi_id = Regexp.last_match[1]
          ncbi_id = encode ncbi_id
          url = "http://www.ncbi.nlm.nih.gov/#{querydb.first.type}/#{ncbi_id}"
          {
            :order => 2,
            :title => 'NCBI',
            :url   => url,
            :icon  => 'fa-external-link'
          }
        end
    
        def uniprot
          return nil unless id.match(UNIPROT_ID_PATTERN)
          uniprot_id = Regexp.last_match[1]
          uniprot_id = encode uniprot_id
          url = "http://www.uniprot.org/uniprot/#{uniprot_id}"
          {
            :order => 2,
            :title => 'Uniprot',
            :url   => url,
            :icon  => 'fa-external-link'
          }
        end
    
        def jbrowse
               qstart = hsps.map(&:qstart).min
               sstart = hsps.map(&:sstart).min
               qend = hsps.map(&:qend).max
               send = hsps.map(&:send).max
               first_hit_start = hsps.map(&:sstart).at(0)
               first_hit_end = hsps.map(&:send).at(0)
               my_features = ERB::Util.url_encode(JSON.generate([{
                   :seq_id => accession,
                   :start => sstart,
                   :end => send,
                   :type => "match",
                   :subfeatures =>  hsps.map {
                     |hsp| {
                       :start => hsp.send < hsp.sstart ? hsp.send : hsp.sstart,
                       :end => hsp.send < hsp.sstart ? hsp.sstart : hsp.send,
                       :type => "match_part"
                     } 
                   }
               }]))
               my_track = ERB::Util.url_encode(JSON.generate([
                    {
                       :label => "BLAST",
                       :key => "BLAST hits",
                       :type => "JBrowse/View/Track/CanvasFeatures",
                       :store => "url",
                       :glyph => "JBrowse/View/FeatureGlyph/Segments"
                    }
               ]))
               url = "<http://http://mysite/pomegranate/>" \
                            "?loc=#{accession}:#{first_hit_start-500}..#{first_hit_start+500}" \
                            "&addFeatures=#{my_features}" \
                            "&addTracks=#{my_track}" \
                            "&tracks=BLAST" \
                            "&highlight=#{accession}:#{first_hit_start}..#{first_hit_end}"
               {
                 :order => 2,
                 :title => 'JBrowse',
                 :url   => url,
                 :icon  => 'fa-external-link'
               }
        end
      end
    end
    
    # [1]: https://stackoverflow.com/questions/2824126/whats-the-difference-between-uri-escape-and-cgi-escape


  [1]: https://jbrowse.org/docs/faq.html#how-can-i-link-blast-results-to-jbrowse
For the sake of those who will read this - here is the answer:
I  followed the tutorial here https://jbrowse.org/docs/faq.html#how-can-i-link-blast-results-to-jbrowse 
and put links.rb file in installation directory /sequenceserver-1.0.14/lib/sequenceserver/ . I just added the bit that is shown on jbrowse tutorial to the existing links.rb and than added the path to the conf file in /etc/sequenceserver/.  Also, note that the url in the bit to be added should be changed to your own jbrowse url. And it works fine now.
