Merge branch 'bug/654608-rename-f1-to-share' into develop

This commit is contained in:
Rob Miller 2011-05-05 11:00:01 -07:00
Родитель dcc215c9bf 37c708889a
Коммит edffbfe1b6
18 изменённых файлов: 72 добавлений и 105 удалений

Просмотреть файл

@ -1,50 +1,52 @@
# f1 # ShareServer
A link sharing service that consists of a Firefox extension and a web service. A web service that supports Firefox's 'Share' feature.
The firefox extension creates an area to show the share UI served from the web service. Firefox exposes the share UI as a preference panel.
The web service handles the OAuth work and sending of messages to different share servers. The web service handles the OAuth work and sending of messages to different
share servers.
Some directory explanations: Some directory explanations:
* **extensions**: holds the Firefox extension source.
* **web**: holds the UI for the web service.
* **grinder**: a load testing tool. * **grinder**: a load testing tool.
* **tools**: deployment tools. * **tools**: deployment tools.
* The rest of the files support the web service. * The rest of the files support the web service.
## Installation and Setup ## Installation and Setup
### Get the f1 repository: ### Get the server-share repository:
git clone https://github.com/mozilla/f1.git git clone https://github.com/mozilla/server-share.git
cd f1 cd server-share
### Setup dependencies: ### Setup dependencies:
make build make build
If you are on OS X and you get errors or it does not work, see the OS X troubleshooting If you are on OS X and you get errors or it does not work, see the OS X
section below. troubleshooting section below.
### Start the virtualenv ### Start the virtualenv
source bin/activate source bin/activate
### Running f1 ### Running ShareServer
Run the web server. 'reload' is useful for development, the webserver restarts on file changes, otherwise you can leave it off Run the web server. 'reload' is useful for development, the webserver restarts
on file changes, otherwise you can leave it off.
paster serve --reload development.ini paster serve --reload development.ini
Then visit: [http://127.0.0.1:5000/](http://127.0.0.1:5000/) for an index of api examples Then visit: [http://127.0.0.1:5000/](http://127.0.0.1:5000/) for an index of
api examples
## Troubleshooting OS X installs ## Troubleshooting OS X installs
If the **make build** command produced errors or results in not being able to start If the **make build** command produced errors or results in not being able to
up the server, use the following steps. It is suggested you re-clone F1 before start up the server, use the following steps. It is suggested you re-clone
doing the following steps, so that it starts out with a clean environment. server-share before doing the following steps, so that it starts out with a
clean environment.
1. Make sure XCode 3 is installed. 1. Make sure XCode 3 is installed.
@ -59,19 +61,24 @@ doing the following steps, so that it starts out with a clean environment.
cd /usr/local/bin cd /usr/local/bin
sudo ln -s /opt/python/bin/virtualenv-2.6 virtualenv sudo ln -s /opt/python/bin/virtualenv-2.6 virtualenv
3. Now edit your .profile to make sure that if you have MacPorts installed, its PATH and MANPATH variables 3. Now edit your .profile to make sure that if you have MacPorts installed, its
are last in the list for those environment variables. PATH and MANPATH variables are last in the list for those environment
variables.
I also removed export PYTHONPATH=/Users/aaa/hg/raindrop/server/python:$PYTHONPATH I also removed export
and removed /Library/Frameworks/Python.framework/Versions/Current/bin from the $PATH variable. PYTHONPATH=/Users/aaa/hg/raindrop/server/python:$PYTHONPATH and removed
/Library/Frameworks/Python.framework/Versions/Current/bin from the $PATH
variable.
4. Build C libraries via Homebrew: 4. Build C libraries via Homebrew:
Homebrew installs into /usr/local by default, and it is best if you chown the files in there to you: Homebrew installs into /usr/local by default, and it is best if you chown the
files in there to you:
sudo chown -R $USER /usr/local sudo chown -R $USER /usr/local
If installed things before in these directories, remove these directories: /usr/local/include and /usr/local/lib If installed things before in these directories, remove these directories:
/usr/local/include and /usr/local/lib
ruby -e "$(curl -fsSLk https://gist.github.com/raw/323731/install_homebrew.rb)" ruby -e "$(curl -fsSLk https://gist.github.com/raw/323731/install_homebrew.rb)"
brew install memcached libmemcached brew install memcached libmemcached
@ -80,16 +87,19 @@ Then try the **make build** command above and continue from there.
## Setting up a valid Google domain for OpenID+OAuth ## Setting up a valid Google domain for OpenID+OAuth
You have to have access to a valid domain that google can get to and where you can install an html file. You have to have access to a valid domain that google can get to and where you
can install an html file.
Visit: [https://www.google.com/accounts/ManageDomains](https://www.google.com/accounts/ManageDomains) Visit: [https://www.google.com/accounts/ManageDomains](https://www.google.com/accounts/ManageDomains)
Add your domain, follow the rest of their instructions. Add your domain, follow the rest of their instructions.
To test: Once that is done, you can bypass normal access to your domain by adding to your /etc/hosts file: To test: Once that is done, you can bypass normal access to your domain by
adding to your /etc/hosts file:
127.0.0.1 your.host.com 127.0.0.1 your.host.com
Update development.ini and add your key/secret for the google configuration, restart paster. Update development.ini and add your key/secret for the google configuration,
restart paster.
Then in the web browser, hit f1 with http://your.host.com. Then in the web browser, hit ShareServer with http://your.host.com.

Просмотреть файл

@ -1,43 +0,0 @@
s is without staging right now...
If you can "ssh linkdrop@rd-admin-01.mozillamessaging.com" then these instructions will work for you. If not, contact gozer and don't bother with this until you can ssh into the box.
-Initial setup on local machine:
> git clone git@github.com:mozilla/f1.git
> cd f1
> git remote add production linkdrop@rd-admin-01.mozillamessaging.com:f1-prod
> git branch prod
-Switch to a branch
> git checkout prod
-Merge from master branch on production to the current branch:
> git pull production master
-Push from our prod branch to the master branch on production:
> git push production prod:master
-Merge from master branch on github (f1) into our current branch:
> git pull origin master
What I've been doing when I want to push to production:
git checkout prod
git pull production master
git pull origin master
git push production prod:master
git checkout master
That can all be simplified later via git config file (and there may be a better way to do it anyway). When you push to production, you will see a lot of output. I'd pipe that to a file and then examine the file for any errors. That output is basically a sync to the live servers as a git hook in the push. As I understand from gozer, there is also a cron job that checks every few minutes in case the update from push fails.
I'm not certain about git branches yet, so be sure you do NOT push to origin from the prod branch.
Shane

Просмотреть файл

@ -1,5 +1,5 @@
# #
# linkdrop - Pylons development environment configuration # ShareServer - debug environment configuration
# #
# The %(here)s variable will be replaced with the parent directory of this file # The %(here)s variable will be replaced with the parent directory of this file
# #
@ -116,7 +116,7 @@ use = egg:Paste#static
document_root = %(here)s/web document_root = %(here)s/web
[app:api] [app:api]
use = egg:linkdrop use = egg:ShareServer
full_stack = true full_stack = true
static_files = true static_files = true
session_middleware = false session_middleware = false
@ -141,7 +141,7 @@ set debug = false
filter-with = dbgp filter-with = dbgp
[filter:dbgp] [filter:dbgp]
use = egg:linkdrop#dbgp use = egg:ShareServer#dbgp
# character key for use with dbgp proxy # character key for use with dbgp proxy
#idekey=username #idekey=username
# machine client debugger (e.g. Komodo IDE) or proxy runs on # machine client debugger (e.g. Komodo IDE) or proxy runs on

Просмотреть файл

@ -1,5 +1,5 @@
# #
# linkdrop - Pylons development environment configuration # ShareServer - development environment configuration
# #
# The %(here)s variable will be replaced with the parent directory of this file # The %(here)s variable will be replaced with the parent directory of this file
# #
@ -95,11 +95,11 @@ use = egg:Paste#urlmap
/api = api /api = api
[app:home] [app:home]
use = egg:linkdrop#static use = egg:ShareServer#static
document_root = %(here)s/deps/client-share-web document_root = %(here)s/deps/client-share-web
[app:api] [app:api]
use = egg:linkdrop use = egg:ShareServer
full_stack = true full_stack = true
static_files = false static_files = false
# if we've configured beaker as a filter-app then don't enable it # if we've configured beaker as a filter-app then don't enable it

Просмотреть файл

@ -1,5 +1,5 @@
linkdrop ShareServer
++++++++ +++++++++++
This is the main index page of your documentation. It should be written in This is the main index page of your documentation. It should be written in
`reStructuredText format <http://docutils.sourceforge.net/rst.html>`_. `reStructuredText format <http://docutils.sourceforge.net/rst.html>`_.

Просмотреть файл

@ -1,5 +1,5 @@
# #
# linkdrop - Pylons testing environment configuration # ShareServer - testing environment configuration
# #
# The %(here)s variable will be replaced with the parent directory of this file # The %(here)s variable will be replaced with the parent directory of this file
# #
@ -60,7 +60,7 @@ beaker.session.secret = somesecret
beaker.session.type = memory beaker.session.type = memory
[filter-app:csrf] [filter-app:csrf]
use = egg:linkdrop#csrf use = egg:ShareServer#csrf
# allow access to account api's for oauth, which will not have csrf token # allow access to account api's for oauth, which will not have csrf token
# be sure to use the FULL path # be sure to use the FULL path
csrf.unprotected_path = /api/account csrf.unprotected_path = /api/account
@ -78,7 +78,7 @@ document_root = %(here)s/web
[app:api] [app:api]
#use: config:api.ini #use: config:api.ini
use = egg:linkdrop use = egg:ShareServer
full_stack = true full_stack = true
static_files = true static_files = true

Просмотреть файл

@ -1,5 +1,5 @@
# #
# linkdrop - Pylons development environment configuration # ShareServer - gunicorn / gevent environment configuration
# #
# The %(here)s variable will be replaced with the parent directory of this file # The %(here)s variable will be replaced with the parent directory of this file
# #
@ -85,7 +85,7 @@ beaker.session.data_dir = %(here)s/data/sessions
beaker.session.lock_dir = %(here)s/data/sessions/lock beaker.session.lock_dir = %(here)s/data/sessions/lock
[filter-app:csrf] [filter-app:csrf]
use = egg:linkdrop#csrf use = egg:ShareServer#csrf
# allow access to account api's for oauth, which will not have csrf token # allow access to account api's for oauth, which will not have csrf token
# be sure to use the FULL path # be sure to use the FULL path
csrf.unprotected_path = /api/account csrf.unprotected_path = /api/account
@ -97,11 +97,11 @@ use = egg:Paste#urlmap
/api = api /api = api
[app:home] [app:home]
use = egg:linkdrop#static use = egg:ShareServer#static
document_root = %(here)s/web document_root = %(here)s/web
[app:api] [app:api]
use = egg:linkdrop use = egg:ShareServer
full_stack = true full_stack = true
static_files = false static_files = false
# if we've configured beaker as a filter-app then don't enable it # if we've configured beaker as a filter-app then don't enable it

Просмотреть файл

@ -1,3 +1,3 @@
import logging import logging
log = logging.getLogger('share') log = logging.getLogger('shareserver')

Просмотреть файл

@ -22,7 +22,7 @@
# #
# #
# linkdrop - Pylons configuration # shareserver - app configuration
# #
# The %(here)s variable will be replaced with the parent directory of this file # The %(here)s variable will be replaced with the parent directory of this file
# #
@ -100,7 +100,7 @@ beaker.session.data_dir = %(here)s/data/sessions
beaker.session.lock_dir = %(here)s/data/sessions/lock beaker.session.lock_dir = %(here)s/data/sessions/lock
[filter-app:csrf] [filter-app:csrf]
use = egg:linkdrop#csrf use = egg:ShareServer#csrf
# allow access to account api's for oauth, which will not have csrf token # allow access to account api's for oauth, which will not have csrf token
# be sure to use the FULL path # be sure to use the FULL path
csrf.unprotected_path = /api/account csrf.unprotected_path = /api/account
@ -116,7 +116,7 @@ use = egg:Paste#static
document_root = %(here)s/web document_root = %(here)s/web
[app:api] [app:api]
use = egg:linkdrop use = egg:ShareServer
full_stack = true full_stack = true
static_files = true static_files = true
session_middleware = false session_middleware = false

Просмотреть файл

@ -24,7 +24,7 @@
<a target="_blank" href="http://f1.mozillamessaging.com/" <a target="_blank" href="http://f1.mozillamessaging.com/"
style="color: #00A0FF; style="color: #00A0FF;
font-size: 16px; "> font-size: 16px; ">
F1 by Mozilla Messaging Firefox Share by Mozilla Messaging
</a> </a>
</div> </div>
<!--link--> <!--link-->
@ -55,7 +55,7 @@
<div class="footer" <div class="footer"
style="font-size: 12px; style="font-size: 12px;
color: #444;"> color: #444;">
shared via <a target="_blank" style="color:#006AAA;font-weight:bold;text-decoration:none;" title="Share links with the people that matter to you" href="http://f1.mozillamessaging.com/">Mozilla F1</a> for Firefox &mdash; <span style="color:#666;">share links with the people that matter to you</span> shared via <a target="_blank" style="color:#006AAA;font-weight:bold;text-decoration:none;" title="Share links with the people that matter to you" href="http://f1.mozillamessaging.com/">Firefox Share</a> &mdash; <span style="color:#666;">share links with the people that matter to you</span>
</div> </div>
<!--footer--> <!--footer-->

Просмотреть файл

@ -39,7 +39,7 @@
</table> </table>
</div> </div>
<div class="footer" style="font-size:12px;color:#444;"> <div class="footer" style="font-size:12px;color:#444;">
shared via <a target="_blank" style="color:#006AAA;font-weight:bold;text-decoration:none;" title="Share links with the people that matter to you" href="http://f1.mozillamessaging.com/">Mozilla F1</a> for Firefox &mdash; <span style="color:#666;">"share links with the people that matter to you"</span> shared via <a target="_blank" style="color:#006AAA;font-weight:bold;text-decoration:none;" title="Share links with the people that matter to you" href="http://f1.mozillamessaging.com/">Firefox Share</a> &mdash; <span style="color:#666;">"share links with the people that matter to you"</span>
</div> </div>
</body> </body>
</html> </html>

Просмотреть файл

@ -10,6 +10,6 @@ ${c.longurl}
${c.description} ${c.description}
-- --
shared via Mozilla F1 for Firefox -- http://f1.mozillamessaging.com/ shared via Firefox Share -- http://f1.mozillamessaging.com/
:: share links with the people that matter to you :: :: share links with the people that matter to you ::

Просмотреть файл

@ -1,5 +1,5 @@
# #
# linkdrop - Pylons configuration # ShareServer - production configuration
# #
# The %(here)s variable will be replaced with the parent directory of this file # The %(here)s variable will be replaced with the parent directory of this file
# #
@ -68,7 +68,7 @@ use = egg:Paste#urlmap
# This should be removed and the web pages directly served by nginx # This should be removed and the web pages directly served by nginx
# #
[app:home] [app:home]
use = egg:linkdrop#static use = egg:ShareServer#static
document_root = /var/www/f1 document_root = /var/www/f1
[filter:proxy-prefix] [filter:proxy-prefix]
@ -76,7 +76,7 @@ use = egg:PasteDeploy#prefix
prefix = /api prefix = /api
[app:api] [app:api]
use = egg:linkdrop use = egg:ShareServer
filter-with = proxy-prefix filter-with = proxy-prefix
full_stack = true full_stack = true
static_files = false static_files = false

Просмотреть файл

@ -1,5 +1,5 @@
# #
# linkdrop - Pylons development environment configuration # ShareServer - profiling environment configuration
# #
# The %(here)s variable will be replaced with the parent directory of this file # The %(here)s variable will be replaced with the parent directory of this file
# #
@ -116,7 +116,7 @@ use = egg:Paste#static
document_root = %(here)s/web document_root = %(here)s/web
[app:api] [app:api]
use = egg:linkdrop use = egg:ShareServer
full_stack = true full_stack = true
static_files = true static_files = true
session_middleware = false session_middleware = false

Просмотреть файл

Просмотреть файл

@ -31,7 +31,7 @@ except ImportError:
VERSION = '0.3.7' VERSION = '0.3.7'
setup( setup(
name='linkdrop', name='ShareServer',
version=VERSION, version=VERSION,
description=('F1 is a browser extension that allows you to share links ' description=('F1 is a browser extension that allows you to share links '
'in a fast and fun way.'), 'in a fast and fun way.'),

Просмотреть файл

@ -1,5 +1,5 @@
# #
# linkdrop - Pylons configuration # ShareServer - staging configuration
# #
# The %(here)s variable will be replaced with the parent directory of this file # The %(here)s variable will be replaced with the parent directory of this file
# #
@ -58,7 +58,7 @@ beaker.session.data_dir = %(here)s/data/sessions
beaker.session.lock_dir = %(here)s/data/sessions/lock beaker.session.lock_dir = %(here)s/data/sessions/lock
[filter-app:csrf] [filter-app:csrf]
use = egg:linkdrop#csrf use = egg:ShareServer#csrf
# allow access to account api's for oauth, which will not have csrf token # allow access to account api's for oauth, which will not have csrf token
# be sure to use the FULL path # be sure to use the FULL path
csrf.unprotected_path = /account csrf.unprotected_path = /account
@ -74,7 +74,7 @@ use = egg:Paste#static
document_root = %(here)s/web document_root = %(here)s/web
[app:api] [app:api]
use = egg:linkdrop use = egg:ShareServer
full_stack = true full_stack = true
static_files = false static_files = false
session_middleware = false session_middleware = false

Просмотреть файл

@ -22,7 +22,7 @@
# #
# #
# linkdrop - Pylons testing environment configuration # ShareServer - testing environment configuration
# #
# The %(here)s variable will be replaced with the parent directory of this file # The %(here)s variable will be replaced with the parent directory of this file
# #
@ -88,7 +88,7 @@ port = 5000
[app:main] [app:main]
#use: config:api.ini #use: config:api.ini
use = egg:linkdrop use = egg:ShareServer
full_stack = false full_stack = false
static_files = false static_files = false