rooftopcms / rooftop-cms Goto Github PK
View Code? Open in Web Editor NEWRooftop CMS is an API-first WordPress CMS for developers and content creators
Home Page: http://www.rooftopcms.com
License: GNU General Public License v3.0
Rooftop CMS is an API-first WordPress CMS for developers and content creators
Home Page: http://www.rooftopcms.com
License: GNU General Public License v3.0
HI.
Do you have a Docker container for a Rooftop CMS?
In preview mode, _links with hrefs don't include /wp/v2 which means the links don't work.
Might need to break this into more than one ticket:
Hey guys, I'm setting up the self hosted rooftopcms for wordpress. I've tried to install the rooftop-api-authentication plugin
on my hostgator hosted wordpress install, but I keep getting an error when I attempt to activate the plugin. error - Parse error: syntax error, unexpected T_FUNCTION in /home2/jnashpor/public_html/railstest/wp-content/plugins/rooftop-api-authentication-development/admin/class-rooftop-api-authentication-admin.php on line 109
. I was initially using wordpress version 4.7.4, but then downgraded to 4.3 to follow the tested version of the plugin as seen in the plugin repo. Is rooftop-api-authentication
the correct plugin that I should be using to connect rooftopcms to my wordpress app or is there some other way I should be making the connection?
Hey guys I just got rooftop-cms to work on a droplet. Here's the run down on how to set it up and some issues I'm still having.
Assumptions:
public/web
dir is located at /web
OS: ubuntu 14.04
Dependencies:
One Liner:
apt-get install -q -y curl php5-cli php5 php5-mysql git mysql-server nginx php5-fpm php5-curl redis-server
List:
- curl
- php5-cli
- php5-mysql
- php5-fpm
- php5-curl
- redis-server
- mysql-server
- nginx
- git
Modified vvv-init.sh
:
echo "Starting Rooftop"
echo "----------------"
echo "Starting mysql"
nohup /usr/bin/mysqld_safe 2>&1 &
service mysql start
sleep 5
mysqladmin -u root --password 'root'
echo "Starting redis"
nohup redis-server &
echo "Configuring hosted wordpress CMS"
cd /web
composer install
echo "Creating database (if it's not already there)"
mysql -u root -e "CREATE DATABASE IF NOT EXISTS $DB_NAME"
mysql -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO $DB_USER@'$DB_HOST' IDENTIFIED BY '$DB_PASSWORD';"
echo "Installing Wordpress Core"
wp core multisite-install --subdomains --url=${WP_URL} --title="Hosted Wordpress" --admin_user=${WP_ADMIN_EMAIL} --admin_password=${WP_ADMIN_PASSWORD} --admin_email=${WP_ADMIN_EMAIL} --allow-root --path=web/wp
echo "Starting php5-fpm & nginx"
service php5-fpm start
service nginx start
This is the modified requirements to public/composer.json
, this is required as a couple deps aren't OSS by the rooftop team currently.
"require": {
"php": ">=5.4",
"composer/installers": "~1.0.12",
"vlucas/phpdotenv": "^2.0.1",
"johnpbloch/wordpress": "~4.4.0",
"wpackagist-plugin/rest-api": "2.0-beta9",
"rooftopcms/rooftop-preview-mode": "dev-development",
"rooftopcms/rooftop-api-authentication": "dev-development",
"rooftopcms/rooftop-admin-theme": "dev-development",
"rooftopcms/rooftop-response-sanitiser": "dev-development",
"rooftopcms/rooftop-gravityforms-exposer": "dev-development",
"rooftopcms/rooftop-webhooks-admin": "dev-development",
"rooftopcms/rooftop-acf-exposer": "dev-development",
"rooftopcms/rooftop-content-hierarchy": "dev-development",
"rooftopcms/rooftop-content-fields": "dev-development",
"rooftopcms/rooftop-custom-content-setup": "dev-development",
"rooftopcms/rooftop-content-settings": "dev-development",
"rooftopcms/rooftop-response-headers": "dev-development",
"rooftopcms/rooftop-queue-pusher": "dev-development",
"rooftopcms/rooftop-s3-upload-setup": "dev-development",
"wpackagist-plugin/amazon-web-services": "0.3.4",
"wpackagist-plugin/wp-api-menus": "1.2.0",
"predis/predis": "~1.0.3",
"icanboogie/inflector": "1.3.3",
"wp-cli/wp-cli" : "~0.22",
"psy/psysh" : "~0.6"
}
When flicking through pages of templates, the bulk actions box selection deselects. Hence, I guess it is not possible to bulk action an entire site in one go. Is that correct?
Just checking if Rooftop has a 'support' to end-users (clients with very little technical knowledge). Hence end-user could contact their 'technical providers' directly.
We need to thoroughly test what happens when a client saves data back into the Rooftop site. It's supported, it works, but we haven't proven what happens with e.g. custom keys and more complex data like ACF.
Hi,
I'm following the instructions here: https://rooftopcms.readme.io/docs/installing-a-development-environment
Is there not supposed to be an acf-repeater repo at https://bitbucket.org/errorstudio/ ?
Gr, J
It would be great to see conversion trackers available through RT - not just per page, but rather individual page elements.
We should have the WordPress importer plugin installed so people can migrate to rooftop easily. This needs some thought to make sure we aren't going to bog down the servers with long-running synchronous requests
When deactivating a site we return WP's default 401 message which is in HTML. Would be nicer for it to be in JSON really - especially /wp-json endpoints.
We need to write API docs. The OPTIONS endpoint should self-describe the service (which needs work too), but we need some human-readable docs too. readme.io?
The readme indicates this project is MIT licensed though the LICENSE file indicates it is GPL licensed. Could you please clarify?
What's the licence for Rooftop?
This project is MIT licenced (see the LICENCE file in this repo), so if you want to host it yourself, you can.
GNU GENERAL PUBLIC LICENSE
If there are taxonomy terms associated with a given post, you get an object with the taxonomy as the key and the terms in an array. If there are no taxonomy terms associated with a post, you get an array (when you would normally expect an empty object). This makes parsing a bit harder than it should be.
According to these docs we should be able to automatically embed relations into a response by passing _embed
as a GET querystring.
But when we do, we get an error in the REST API plugin:
Fatal error: Cannot unset string offsets in /srv/www/rooftop-cms/public/web/app/mu-plugins/rest-api/lib/endpoints/class-wp-rest-controller.php on line 179
Interesting, this is an identical error to the one produced by #5
Hitting the /media endpoint gives an error from the REST API plugin:
Fatal error: Cannot unset string offsets in /srv/www/rooftop-cms/public/web/app/mu-plugins/rest-api/lib/endpoints/class-wp-rest-controller.php on line 179
We need to add options for creating a bucket - region, bucket name etc.
Hi, I ran into a handful of issues when trying to spin up my own version of rooftop. I worked past issue #22 but still couldn't get things running. I'm pretty unfamiliar with vagrant so I'm assuming that I probably just missed a basic setup step somewhere - any pointers would be appreciated. Once I can get this up and running I'd be happy to submit a PR with updated documentation and/or code.
1.8.4
)5.0.22
)$ brew install homebrew/php/php55-pcntl
$ git clone https://github.com/rooftopcms/VVV.git
$ cd VVV/www/
$ git clone https://github.com/rooftopcms/rooftop-cms.git
$ composer install -d rooftop-cms/public/
-bash: composer: command not found
To update the composer lock file I ran $ php composer.phar update -d rooftop-cms/public/
, which continued to fail until I had made the following changes to composer.json:
"url": "https://wpackagist.org"
)"wpackagist-plugin/amazon-web-services": "^0.3.4",
Finally, I ran vagrant up
which took awhile but seemed to work fine - I could ssh into the box afterwards and everything. But when I point my browser to http://rooftop-cms.dev
there doesn't seem to be anything there. I'm too naive about the tools involved to know where to turn next, but here's some guesses I had:
vagrant up
command suggesting that mysql wasn't configured properly - are there additional DB settings that I need to configure (maybe .env
) ?/www
folder but there's a Vagrantfile at VVV/
's root ...?rooftop-cms.dev
- not really sure how this worksA call to e.g. /wp-json/wp/v2/posts/123456 where post 123456 doesn't exist returns an error:
Notice: Undefined property: stdClass::$show_in_rest in /srv/www/rooftop-cms/public/web/app/mu-plugins/rest-api/lib/endpoints/class-wp-rest-posts-controller.php on line 858
It should just return a 404 instead.
At the moment the api doesn't deliver any cache headers. We need to fix that so interstitial caches do the right thing.
A new plugin needs to handle:
This project (GPL3) has some code we can reuse, I expect: https://github.com/gnotaras/wordpress-add-headers
When editing / adding / deleting terms (and probably taxonomies too) we should raise a webhook.
Use the fantastic-elasticsearch plugin backend.
We need to index all public content types and taxonomies, with an ES index per site.
Hello,
I have installed Rooftop CMS on my own AWS EC2 instance, and I have followed the following guide: https://rooftopcms.readme.io/docs/installing-a-development-environment except for the VVV part of course.
The CMS itself seems to be working fine. When I tried to add a user for the API key, I got an error. After checking out the issues on GitHub, the fix in issue #28 seems to have worked for me as well by creating the appropriate table:
CREATE TABLE wp_api_keys ( id MEDIUMINT NOT NULL AUTO_INCREMENT, key_name VARCHAR(256) NOT NULL, domain VARCHAR(256) NOT NULL, api_key VARCHAR(256) NOT NULL, user_id INTEGER NOT NULL, PRIMARY KEY(id), INDEX(domain), INDEX(api_key));
After this I was able to create the user, but I was not able to authenticate with this API key, because it seems that the /wp-json/wp/v2/posts is missing. I unfortunately receive a 404.
What could possibly go wrong here? Did I miss a step or something that specifically creates MySQL tables, and installs the API endpoint etc? If you need more information, please let me know.
Thank you in advance!
We should provide an option to give a cleaner (non-WP-API format) JSON structure for clients who want it - either as a querystring parameter on a response, or globally as a site setting.
event's retain a draft slug even when published (whats-on/draft-6548).
figure out what's going on and how to generate a new slug
We should give users the option to either POST multipart form data or JSON. At the moment it's only form data.
Not clear whether this is a local issue or not.
Hi, when I try to run composer install
, it throws this error:
[RuntimeException]
Failed to execute git clone --no-checkout '[email protected]:errorstudio/rooftop-hosted-hooks.git' 'web/app/mu-plugins/rooftop-hosted-hooks/' && cd 'web/app/mu-plugins/rooftop-hosted-hooks/' && git remote add composer '[email protected]:errorstudio/rooftop-hosted-hooks.git' && git fetch composer
Cloning into 'web/app/mu-plugins/rooftop-hosted-hooks'...
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
Is it me or there's an error? How can I fix it?
Thanks
ACF has an options page - we'd need to tweak the ACF exposer.
Quick edit does not work - neither parents or templates - or any changes to pages seem to appear there. I hope this helps. Also, would it be possible to have last updated in Pages, please?
We need to be able to use wordpress to do redirects - at least be able to manage them somehow. Needs thinking about.
Here's my plan for API request accounting:
We'll use Nginx and Lua to increment a counter in Redis, synchronously with the request. It's very fast.
There are various options for data structures. If we just want this month's usage, that's pretty simple:
key: api_accounting:[sitename].rooftopcms.io:[api_key]
value: [int]
You can INCR
on the value to keep the counter up to date.
We could use sorted sets to store timeseries data:
key: api_accounting:[sitename].rooftopcms.io:[api_key]
score: [timestamp]
value: {
timestamp: [timestamp,
count: 1
}
We don't need to increment the counter; a new member is added to the sorted set for each request. Querying ranges will be very inexpensive because the timestamp means we already have the data date-sorted. I don't know how to SUM the count, though.
In its simplest form, we could just show the current month's counters against the API key. It would be nice to poll the count periodically and raise an alert (webhook and/or email) if it went over a predefined threshold.
Using the nested set approach, if we can cheaply sum, we could graph requests over time.
We need to redirect to login if not logged in.
The 'registration disabled' page is pretty unappealing. We should fix that and/or redirect.
in wp-admin, the "View site" link points to / which is an empty page - we should make that link point to /wp-admin
the _links array on a taxonomy now includes wp:items instead of "items" which breaks the rooftop-ruby implementation.
We should continue to return "items" for backwards compatibility.
It would be nice to allow users to set a different region for their S3 buckets, and maybe specify a name.
We need to hook into the preview button and turn it off or make it work with the consuming site / app
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.