Quantcast
Channel: Discourse Meta - Latest topics
Viewing all 60309 articles
Browse latest View live

Read-only flag gets reset during backup

0
0

@Henti_Smith wrote:

I'm busy working out the process to backup our existing production site and restoring on a secondary site and then pointing our proxy to the correct back-end to allow graceful upgrading of our site without downtime.

The process so far is pretty simple. (This will be automated)

  1. Enable read-only on production site.
  2. Enable including uploads in backups.
  3. Run backup.
  4. Copy backup to standby site.
  5. Enable read-only on standby site.
  6. Restore backup with uploads.
  7. Switch proxy to standby site.
  8. Disable read-only mode on standby site.

Now the standby site is the new production site. The problem seems to be the backup process removes the read-only status, thus making production live again, which allows changes that is not included in the backup to be possible.

My expectation is the backup process should not change the read-only state of the site.
Changing this state allows for changes that will not be on the restored site.

Regards
Henti

Posts: 1

Participants: 1

Read full topic


Changing the invite URL?

0
0

@naupe wrote:

So, I just got Discourse up and running (I'm hosting Discourse on a personal machine of mine), and people on my development team are able to access and join the forum ... well, they can join but only after I instruct them to change the invite URL they receive in email to my IP Address (I'm aware we'll eventually need to redirect the site to a different domain name, but this is another hurdle that a friend of mine will be handling).

What do I mean? Well the hostname of my machine hosting Discourse is "epoch-nexus.net". Currently, the way to access the Discourse site is via my machine's public IP address. When I invite a new user, they are sent the following email:

Admin invited you to join

[Forum Name]

[Forum Description]

If you're interested, click the link below:

http://epoch-nexus.net/invites/[random_number]

That's an invalid URL ("epoch-nexus.net" is not our domain, it's just the hostname I wanted to give the machine hosting the Discourse forum). Is there a way in Discourse to change the link so it would be "http://[My_IP_Address]/invite/[random_number]", or to anything else for that matter (as it will eventually need to change to our website's domain name)?

I can already guess a solution will be to rename the hostname on my machine to the website's domain, and rebuilding Discourse, but won't rebuilding cause me to have to go through the Discourse install process all over again? Will it completely wipe the current state of the forum?

Posts: 2

Participants: 2

Read full topic

Message: Problems have been found?

0
0

@Horus wrote:

Hello,

tonight, I got a message in my admin mailbox

Es wurden Probleme in deinem Admin-Dashboard gemeldet.

Bitte überprüfe und behebe sie.

which basically means there were problems reported in the admin-dashboad. Please review and fix them. Followed by a link to the dashboard.

However, on the dashboard I find no issues. There was on flagged posting, but that was dealt with days ago. /logs is also empy of anything relevant here.

What could this message mean?

There is a similiar issue https://meta.discourse.org/t/system-message-problems-have-been-found/48308 but that bug was fixed a year ago.

Thanks!

Posts: 4

Participants: 3

Read full topic

Request: new polling method "Systemic Konsensiering" (DE:Systemisches Konsensieren)

0
0

@faithinchaos wrote:

In the offline world I mostly use this method, because I highly appreciate the many advantages of SK.
I can't find an explanation in english right now but there is a platform to do it online with translation.

The principle for the voting process are:

  • All participants can add new options.
  • You dont decide for one option, but instead estimate your resistance to each option. (e.G: 0 = I'm fine with that option; 1 = I feel a slight resistance; 2 = I cannot live with that option. Sometimes a scale up to 10 makes more sense)
  • The option with the least resistance wins (/is the option preferred by the group)

The deviations from the standard voting module aren't that big, are they? I can't programm but I can help.

Posts: 3

Participants: 3

Read full topic

Disabling mailing list mode does not update user settings

0
0

@jnns wrote:

If a user enabled mailing list mode in their user settings and an admin disables mailing list mode per admin settings, this change seems not to have an effect on the user notification settings (which are still set to "mailing list mode").

Additionally, this leads to digest mode being disabled for this user as well.

Using Discourse v1.8.0.beta13 +18.

Posts: 1

Participants: 1

Read full topic

Stop downloads in topics

Topic List Sort By Votes in voting plugin

0
0

@kevinprow wrote:

We have a feature request category using the voting plugin, and the Votes sort order is available in our top menu, but is not available in the "Topic List Sort By:" dropdown in the category settings. I would love to set the default sort on this to show the highest votes at the top of the list. While I understand that sometimes a chronological view makes sense, in my use case, generating valuable feedback on the most requested features helps me to get a better picture of the benefit story for my customer base. Is there any hack I could do to make it default sort to Votes and/or is this something that is planned already for a future update?

Posts: 2

Participants: 2

Read full topic

Update private plugin without rebuilding the application

0
0

@net_deamon wrote:

The admin upgrade page /admin/upgrade checks with "github.com" for all the plugins.

If we have a private plugin (with bitbucket), then it does not check with bitbucket, but with github. And so the plugin is always shown as update to date with last commit id.

Due to this, in order to upgrade private plugin, I have to rebuild the app, which results in downtime.

I have followed this tutorial/thread to add link the plugin with bitbucket.

What do you guys do to update bitbucket/private plugins without rebuilding the app?

Posts: 4

Participants: 2

Read full topic


Restore failed when attempting to go back to a version from 2 days ago

0
0

@Ridz1208 wrote:

I just tried goin to an older version of the database, I put the site n readonly mode then attempted the restore. A failure stopped the process log below.

[2017-05-24 15:15:41] CREATE INDEX
[2017-05-24 15:15:41] Enabling readonly mode...
[2017-05-24 15:15:41] Pausing sidekiq...
[2017-05-24 15:15:41] Waiting for sidekiq to finish running jobs...
[2017-05-24 15:15:41] Switching schemas... try reloading the site in 5 minutes, if successful, then reboot and restore is complete.
[2017-05-24 15:15:41] EXCEPTION: ERROR:  relation "digest_unsubscribe_keys_pkey" already exists in schema "backup"
CONTEXT:  SQL statement "ALTER TABLE public.unsubscribe_keys SET SCHEMA backup;"
PL/pgSQL function inline_code_block line 11 at EXECUTE

[2017-05-24 15:15:41] /var/www/discourse/vendor/bundle/ruby/2.3.0/gems/rack-mini-profiler-0.10.1/lib/patches/db/pg.rb:50:in `exec'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/rack-mini-profiler-0.10.1/lib/patches/db/pg.rb:50:in `exec'
/var/www/discourse/lib/freedom_patches/active_record_base.rb:7:in `exec_sql'
/var/www/discourse/lib/backup_restore/restorer.rb:334:in `switch_schema!'
/var/www/discourse/lib/backup_restore/restorer.rb:50:in `run'
/var/www/discourse/lib/backup_restore/backup_restore.rb:163:in `block in start!'
/var/www/discourse/lib/backup_restore/backup_restore.rb:160:in `fork'
/var/www/discourse/lib/backup_restore/backup_restore.rb:160:in `start!'
/var/www/discourse/lib/backup_restore/backup_restore.rb:19:in `restore!'
/var/www/discourse/app/controllers/admin/backups_controller.rb:101:in `restore'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_controller/metal/implicit_render.rb:4:in `send_action'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/abstract_controller/base.rb:198:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_controller/metal/rendering.rb:10:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/abstract_controller/callbacks.rb:20:in `block in process_action'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:117:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:555:in `block (2 levels) in compile'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:92:in `__run_callbacks__'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:778:in `_run_process_action_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:81:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/abstract_controller/callbacks.rb:19:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_controller/metal/rescue.rb:29:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/notifications.rb:164:in `block in instrument'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/notifications.rb:164:in `instrument'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/railties/controller_runtime.rb:18:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/abstract_controller/base.rb:137:in `process'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionview-4.2.7.1/lib/action_view/rendering.rb:30:in `process'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/rack-mini-profiler-0.10.1/lib/mini_profiler/profiling_methods.rb:76:in `block in profile_method'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_controller/metal.rb:196:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_controller/metal.rb:237:in `block in action'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_dispatch/routing/route_set.rb:74:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_dispatch/routing/route_set.rb:43:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_dispatch/routing/mapper.rb:49:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_dispatch/journey/router.rb:43:in `block in serve'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_dispatch/journey/router.rb:30:in `each'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_dispatch/journey/router.rb:30:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_dispatch/routing/route_set.rb:817:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/omniauth-1.3.1/lib/omniauth/strategy.rb:186:in `call!'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/omniauth-1.3.1/lib/omniauth/strategy.rb:164:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/omniauth-1.3.1/lib/omniauth/strategy.rb:186:in `call!'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/omniauth-1.3.1/lib/omniauth/strategy.rb:164:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/omniauth-1.3.1/lib/omniauth/strategy.rb:186:in `call!'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/omniauth-1.3.1/lib/omniauth/strategy.rb:164:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/omniauth-1.3.1/lib/omniauth/strategy.rb:186:in `call!'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/omniauth-1.3.1/lib/omniauth/strategy.rb:164:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/omniauth-1.3.1/lib/omniauth/strategy.rb:186:in `call!'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/omniauth-1.3.1/lib/omniauth/strategy.rb:164:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/omniauth-1.3.1/lib/omniauth/strategy.rb:186:in `call!'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/omniauth-1.3.1/lib/omniauth/strategy.rb:164:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/omniauth-1.3.1/lib/omniauth/builder.rb:63:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/rack-1.6.5/lib/rack/conditionalget.rb:38:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/rack-1.6.5/lib/rack/head.rb:13:in `call'
/var/www/discourse/lib/middleware/anonymous_cache.rb:138:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/params_parser.rb:27:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/flash.rb:260:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/rack-1.6.5/lib/rack/session/abstract/id.rb:225:in `context'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/rack-1.6.5/lib/rack/session/abstract/id.rb:220:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/cookies.rb:560:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/query_cache.rb:36:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:88:in `__run_callbacks__'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:778:in `_run_call_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:81:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/callbacks.rb:27:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/logster-1.2.7/lib/logster/middleware/reporter.rb:31:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/rack/logger.rb:38:in `call_app'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/rack/logger.rb:22:in `call'
/var/www/discourse/config/initializers/100-quiet_logger.rb:17:in `call_with_quiet_assets'
/var/www/discourse/config/initializers/100-silence_logger.rb:29:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/request_id.rb:21:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/rack-1.6.5/lib/rack/methodoverride.rb:22:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/rack-1.6.5/lib/rack/runtime.rb:18:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/rack-1.6.5/lib/rack/sendfile.rb:113:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/rack-mini-profiler-0.10.1/lib/mini_profiler/profiler.rb:171:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/message_bus-2.0.2/lib/message_bus/rack/middleware.rb:62:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:73:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/engine.rb:518:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/application.rb:165:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/railtie.rb:194:in `public_send'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/railtie.rb:194:in `method_missing'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/rack-1.6.5/lib/rack/urlmap.rb:66:in `block in call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/rack-1.6.5/lib/rack/urlmap.rb:50:in `each'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/rack-1.6.5/lib/rack/urlmap.rb:50:in `call'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/unicorn-5.2.0/lib/unicorn/http_server.rb:562:in `process_client'
/var/www/discourse/lib/scheduler/defer.rb:85:in `process_client'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/unicorn-5.2.0/lib/unicorn/http_server.rb:658:in `worker_loop'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/unicorn-5.2.0/lib/unicorn/http_server.rb:508:in `spawn_missing_workers'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/unicorn-5.2.0/lib/unicorn/http_server.rb:132:in `start'
/var/www/discourse/vendor/bundle/ruby/2.3.0/gems/unicorn-5.2.0/bin/unicorn:126:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.3.0/bin/unicorn:23:in `load'
/var/www/discourse/vendor/bundle/ruby/2.3.0/bin/unicorn:23:in `<main>'
[2017-05-24 15:15:41] Trying to rollback...

Posts: 3

Participants: 2

Read full topic

All spammer topics that require approval not removed when 'deleted'

0
0

@AstonJ wrote:

In the forum.com/queued-posts list.

When you click on the needs approval link to see list of topics requiring approval, when you delete one (and ban ip and delete account and all posts) they are removed from the DB but not that list. Clicking on delete for another spam post then results in an error message.

Posts: 5

Participants: 2

Read full topic

Button on memberful

How to change stats display on 'about' page?

0
0

@MakaryGo wrote:

Hi there.
I'd like to show exact stats on our 'about' page, that is not '3.2k' but exact number.
How can I achieve this?

Posts: 3

Participants: 3

Read full topic

Google Analytics usage

0
0

@Andrea_Roberts wrote:

Hi All,

I'm a newbie. Do many of you use Google Analytics tracking in your Discourse instance? I'm curious if you use visits here to count towards your overall site pageviews?

Thanks,

Posts: 2

Participants: 2

Read full topic

Is there a poll feature?

Rails: command not found

0
0

@jomaxro wrote:

One of the sites I admin has existed for many years. I've got records of running version 1.0.1, possibly older. We're trying to cleanup old users that have been created by SSO but never used, but cannot run rails.

Here is what IT is seeing when they try and run the commands:

rgreaves@aw0v-prodstaffdiscourse04:~$ cd /var/discourse/
rgreaves@aw0v-prodstaffdiscourse04:/var/discourse$ sudo ./launcher enter app
[sudo] password for rgreaves:
mesg: ttyname failed: Success
root@aw0v-prodstaffdiscourse04-app:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  pups  root  run  sbin  shared  src  srv  sys  tmp  usr  var  VERSION
root@aw0v-prodstaffdiscourse04-app:/# rails c
bash: rails: command not found

Could this have anything to do with the installation being really old? Any other reason why rails would not be found. For reference, we've got Redis running in its own container, but everything else is in app, VERSION file says 1.3.10.

Posts: 3

Participants: 2

Read full topic


Making it so other users can't "invite" you to a thread

0
0

@ossia wrote:

One of our more popular forum members is getting "invited" to a lot of threads. It's making her notifications noisy, and she wants to be able to turn this feature off.

Is this an option Discourse could include on the user preferences page?

Posts: 5

Participants: 5

Read full topic

How to add "ignore user" functionality?

0
0

@mcbuzz wrote:

Sometimes, there's certain users that just won't get along. Instead of policing their discussions, its better for everyone if you can just add users to ignore. That way everyone wins. Does someone know how to do it or is there a similar plugin I can mess with ?

Posts: 2

Participants: 2

Read full topic

Renaming discobot causes it to break

How to make the colors look less dull?

0
0

@mcbuzz wrote:

Our designer is finding that the colors are a lot more "dull" looking than the standard color brightness and it's affecting her color scheming. Where would I change the "brightness" of the colors so they resemble more of a Material Design sharpness?

Posts: 1

Participants: 1

Read full topic

Diagnosing spam attack of 100 topics

0
0

@AstonJ wrote:

Discourse has been brilliant, much less spam than what we've got on other forums I admin. However last night we got hit by a big spam attack (over 100 threads).

What anti-spam measures are you using or have switched on? Which do you recommend?

I've just set it so TL0 users threads go into a moderation queue, not ideal, but better than letting our Twitter feed get flooded with spam..

Posts: 13

Participants: 4

Read full topic

Viewing all 60309 articles
Browse latest View live




Latest Images